https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125418

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[16/17 regression] c:       |[16/17 regression] #pragma
                   |tls_model("initial-exec")   |weak isn't applied hidden
                   |attribute ignored for       |TLS symbol
                   |hidden symbols with         |
                   |-fno-pie                    |

--- Comment #14 from H.J. Lu <hjl.tools at gmail dot com> ---
[hjl@gnu-zen4-1 tls-1]$ cat x.c
extern __thread int foo __attribute__ ((visibility("hidden"), weak));

int *
func (void)
{
  return &foo;
}
[hjl@gnu-zen4-1 tls-1]$ cat y.c
extern __thread int foo __attribute__ ((visibility("hidden")));

#pragma weak foo

int *
func (void)
{
  return &foo;
}
[hjl@gnu-zen4-1 tls-1]$ make
/usr/gcc-16.1.1-x32/bin/gcc -O2 -fdump-ipa-whole-program -S x.c
/usr/gcc-16.1.1-x32/bin/gcc -O2 -fdump-ipa-whole-program -S y.c
grep Varpool x.c.*i.whole-program
  Varpool flags: tls-initial-exec
grep Varpool y.c.*i.whole-program
  Varpool flags: tls-local-exec
[hjl@gnu-zen4-1 tls-1]$

Reply via email to