[Bug c++/77285] [5/6/7 Regression] extern thread_local linkage
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Aug 18 10:33:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77285
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Oops, sorry that's the nm output for the wrong objects, the output for the
reduced examples is:
nm a.o
U _GLOBAL_OFFSET_TABLE_
0000000000000000 B _Z13gFeelingLuckyB3tag
0000000000000000 W _ZN1XB3tagD1Ev
0000000000000000 W _ZN1XB3tagD2Ev
0000000000000000 n _ZN1XB3tagD5Ev
0000000000000000 T _ZTH13gFeelingLuckyB3tag
U __cxa_thread_atexit
U __dso_handle
0000000000000004 b __tls_guard
0000000000000000 t __tls_init
nm main.o
U _GLOBAL_OFFSET_TABLE_
U _Z13gFeelingLuckyB3tag
U _ZTH13gFeelingLucky
0000000000000000 W _ZTW13gFeelingLucky
0000000000000000 T main
The definition is _ZTH13gFeelingLuckyB3tag but the extern reference is
ZTH13gFeelingLucky
The wrapper function should probably be tagged too, so it doesn't conflict with
a symbol for the untagged object, otherwise a library that contains both
_ZTH13gFeelingLuckyB3tag and _ZTH13gFeelingLucky would get the wrong one via
the wrapper function.
More information about the Gcc-bugs
mailing list