diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2024-02-26 08:12:10 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2024-02-29 09:56:32 +0100 |
commit | 19ba98bdd9ac5890b3203df0c55603b6b4f41564 (patch) | |
tree | c52cb952934b650fefb873bf9c7d3ee826c9f974 | |
parent | add libiberty/argv.c for mingw32 build (diff) | |
download | rtems-tools-19ba98bdd9ac5890b3203df0c55603b6b4f41564.tar.bz2 |
linkers: Avoid void pointer arithmetic
-rw-r--r-- | linkers/rtems-syms.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/linkers/rtems-syms.cpp b/linkers/rtems-syms.cpp index f0ac2bb..9fe552e 100644 --- a/linkers/rtems-syms.cpp +++ b/linkers/rtems-syms.cpp @@ -322,9 +322,9 @@ output_sym::operator ()(const rld::symbols::symtab::value_type& value) if (sym.type () == STT_TLS) { c.write_line ("#define RTEMS_TLS_INDEX_" + sym.name () + " " + std::to_string(index)); c.write_line ("static size_t rtems_rtl_tls_" + sym.name () + "(void) {"); - c.write_line (" extern __thread void* " + sym.name () + ";"); - c.write_line (" const void* tls_base = rtems_rtl_tls_get_base ();"); - c.write_line (" const void* tls_addr = (void*) &" + sym.name () + ";"); + c.write_line (" extern __thread char " + sym.name () + "[];"); + c.write_line (" size_t tls_base = (size_t) rtems_rtl_tls_get_base ();"); + c.write_line (" size_t tls_addr = (size_t) " + sym.name () + ";"); c.write_line (" return tls_addr - tls_base;"); c.write_line ("}"); c.write_line (""); |