------- Comment #15 from davek at gcc dot gnu dot org 2009-09-15 17:16 ------- (In reply to comment #14) > Created an attachment (id=18586) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18586&action=view) [edit] > reduced testcase >
Ok, this is really interesting. The generated debug info only contains the ".long gomp_tls_data" if there are *two* functions that both begin with struct gomp_thread *thr = gomp_thread (); Also, if you change the line to read struct gomp_thread *thr = gomp_thread () + 1; it also doesn't happen. When I read through iter.c.207r.vartrack, I see lots of references to cselib. Is VTA inappropriately CSEing the two value/location expressions together? And perhaps losing track of the TLS status in the process? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41357