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

--- Comment #7 from wangzheyu <tony.wang at arm dot com> ---
I have a simpler test case to reproduce this bug, it should be an old bug for
the tree-emutls pass. The way this pass mapping the control vars and tls vars
hasn't consider that there may more than one alias for a tls var. For target
supports tls, the code can compile successfully, but the target doesn't support
tls will fail.

struct __res_state {
 char x[123];
};

__thread struct __res_state foo;
extern __thread struct __res_state bar
  __attribute__ ((alias ("foo")));
extern __thread struct __res_state baz
  __attribute__ ((alias ("foo")));

int main()
{
  bar.x[0] = 0;
  baz.x[1] = 1;
  return 0;
}

Reply via email to