[Bug c++/48869] OpenMP task construct fails to instantiate copy constructor(same as Bug 36523)

2011-05-04 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48869

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.05.04 13:06:58
 CC||jakub at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-05-04 
13:06:58 UTC ---
Confirmed mainline and 4_6-branch.


[Bug c++/48869] OpenMP task construct fails to instantiate copy constructor(same as Bug 36523)

2011-05-04 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48869

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org,
   ||rguenth at gcc dot gnu.org,
   ||rth at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-04 
15:31:38 UTC ---
Broken by:
http://gcc.gnu.org/viewcvs?root=gccview=revrev=149750
i.e. gimplification unit-a-time.  The problem is we won't know until
gimplification whether some non-POD vars will be firstprivate or not, and when
gimplification has been postponed so late, instantiate_pending_templates won't
be called any longer.
Unfortunately, I think duplicating most of the OpenMP related code from
gimplify.c to find out implicitly firstprivate vars in task constructs earlier
would be very hard and huge amount of code duplication, on the other side if we
wanted to instantiate the missing templates late, we'd have to basically repeat
the whole do { ... } while (reconsider); loop from
cp_write_global_declarations from within some langhook (I don't think we can do
that while in the middle of gimplifying something).
Richard/Richard/Jason, any ideas?