https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87998
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |accepts-invalid
--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
Changing the test case to modify the alias instead of the TLS causes the
program to crash because the memory the alias is mapped to is read-only. That
suggests that rejecting the alias attribute with an error might be a better
solution than issuing just a warning. Alternatively, GCC could issue just a
warning when the alias is declared const and an error when it's not const.
$ cat t.c && gcc -Wall -Wextra t.c && ./a.out
__thread int a = 123;
extern __attribute ((alias ("a"))) int b;
int main (void)
{
b = 456;
__builtin_printf ("a = %i (@%p)\nb = %i (@%p)\n", a, &a, b, &b);
}
Segmentation fault (core dumped)