------- Comment #23 from iains at gcc dot gnu dot org  2010-05-24 17:27 -------
Created an attachment (id=20736)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20736&action=view)
candidate solution 

OK, so comment #22 is the work-around ... 

.. here is the current version of the "proper" solution - that makes the emutls
vars recognized by OMP and LTO.

This works for me for c, c++,Objc, ObjC++ and Fortran (i686 and x86_64 darwin,
[ powerpc as well but not recently bootstrapped]) with one regression:

gcc.dg/tls/asm-1.c  -- would be good if someone more gimplifier experience
could look at gimplify_asm () and see where there is a wrong assumption about
arguments...

There is a "latent" regression in c++ (if we enable all the tls_native tests
applicable) - this is a case where there are two conflicting error messages -
and I think the FE has got confused about whether the var is __thread or not
and tries to create a static constructor for a failed case .. but not 100% sure
about that.

====

TODO:  The expansion of gimplification in tree-profile.c (not a regression
currently, but one waiting to happen).

====

This is ready to kick around a bit -- could other affected targets test/give
opinions etc?

I guess we should get comments on whether this is too invasive...
...  although, if that's felt to be the case I'd like suggestions as to where
else to hook in.. :-)


-- 

iains at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #20701|0                           |1
        is obsolete|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132

Reply via email to