[Bug c++/56217] ICE: OpenMP: when combining shared() and a move constructor

2013-02-19 Thread jakub at gcc dot gnu.org


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



--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-19 
17:19:41 UTC ---

Author: jakub

Date: Tue Feb 19 17:19:36 2013

New Revision: 196141



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=196141

Log:

Backported from mainline

2013-02-06  Jakub Jelinek  ja...@redhat.com



PR middle-end/56217

* omp-low.c (use_pointer_for_field): Return false if

lower_send_shared_vars doesn't generate any copy-out code.



* g++.dg/gomp/pr56217.C: New test.



* testsuite/libgomp.c++/pr56217.C: New test.



Added:

branches/gcc-4_7-branch/gcc/testsuite/g++.dg/gomp/pr56217.C

branches/gcc-4_7-branch/libgomp/testsuite/libgomp.c++/pr56217.C

Modified:

branches/gcc-4_7-branch/gcc/ChangeLog

branches/gcc-4_7-branch/gcc/omp-low.c

branches/gcc-4_7-branch/gcc/testsuite/ChangeLog

branches/gcc-4_7-branch/libgomp/ChangeLog


[Bug c++/56217] ICE: OpenMP: when combining shared() and a move constructor

2013-02-19 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-19 
17:38:02 UTC ---

Fixed for 4.7.3+.


[Bug c++/56217] ICE: OpenMP: when combining shared() and a move constructor

2013-02-08 Thread paolo.carlini at oracle dot com


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



Paolo Carlini paolo.carlini at oracle dot com changed:



   What|Removed |Added



   Severity|blocker |normal


[Bug c++/56217] ICE: OpenMP: when combining shared() and a move constructor

2013-02-06 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||openmp

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2013-02-06

 Ever Confirmed|0   |1



--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2013-02-06 
09:52:48 UTC ---

Confirmed.  On trunk we ICE with



t.C: In function 'ptrint f()':

t.C:15:15: error: invalid conversion in return statement

return pt;

   ^

struct ptr



struct ptr 



return pt.5;



t.C:15:15: internal compiler error: verify_gimple failed

0xcfd441 verify_gimple_in_cfg(function*)

/space/rguenther/src/svn/trunk/gcc/tree-cfg.c:4747


[Bug c++/56217] ICE: OpenMP: when combining shared() and a move constructor

2013-02-06 Thread jakub at gcc dot gnu.org


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



--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-06 
10:35:02 UTC ---

Author: jakub

Date: Wed Feb  6 10:34:53 2013

New Revision: 195796



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195796

Log:

PR middle-end/56217

* omp-low.c (use_pointer_for_field): Return false if

lower_send_shared_vars doesn't generate any copy-out code.



* g++.dg/gomp/pr56217.C: New test.



* testsuite/libgomp.c++/pr56217.C: New test.



Added:

trunk/gcc/testsuite/g++.dg/gomp/pr56217.C

trunk/libgomp/testsuite/libgomp.c++/pr56217.C

Modified:

trunk/gcc/ChangeLog

trunk/gcc/omp-low.c

trunk/gcc/testsuite/ChangeLog

trunk/libgomp/ChangeLog


[Bug c++/56217] ICE: OpenMP: when combining shared() and a move constructor

2013-02-06 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2013-02-06 
10:43:34 UTC ---

Should be fixed on the trunk so far.  Note your testcase is invalid, without

the taskwait I've added, it relies on NRV and even with NRV, by the time the

task can run the temporary result of f() can be destructed already.


[Bug c++/56217] ICE: OpenMP: when combining shared() and a move constructor

2013-02-06 Thread radford at blackbean dot org


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



--- Comment #4 from Jim Radford radford at blackbean dot org 2013-02-06 
20:46:42 UTC ---

(In reply to comment #3)

 Should be fixed on the trunk



Thanks!



 Note your testcase is invalid, without

 the taskwait I've added, it relies on NRV and even with NRV, by the time the

 task can run the temporary result of f() can be destructed already.



I had the taskwait in my original.  Still, thanks for the explanation; it adds

to my nascent mental model of openmp.  Maybe one day I'll get something to

compile so I can try it out, but first I'm off to compile gcc!