[Bug middle-end/66133] Wrong-code with noreturn #pragma omp task body
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed May 13 16:59:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66133
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed May 13 16:59:20 2015
New Revision: 223171
URL: https://gcc.gnu.org/viewcvs?rev=223171&root=gcc&view=rev
Log:
PR middle-end/66133
* omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
make sure it is never noreturn, even when the task body does not
return.
(lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
right before GIMPLE_OMP_RETURN.
(make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
* testsuite/libgomp.c/pr66133.c: New test.
Added:
trunk/libgomp/testsuite/libgomp.c/pr66133.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/omp-low.c
trunk/libgomp/ChangeLog
More information about the Gcc-bugs
mailing list