This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/66133] Wrong-code with noreturn #pragma omp task body
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 03 Jun 2015 21:36:57 +0000
- Subject: [Bug middle-end/66133] Wrong-code with noreturn #pragma omp task body
- Auto-submitted: auto-generated
- References: <bug-66133-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66133
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Jun 3 21:36:26 2015
New Revision: 224105
URL: https://gcc.gnu.org/viewcvs?rev=224105&root=gcc&view=rev
Log:
Backported from mainline
2015-05-13 Jakub Jelinek <jakub@redhat.com>
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.
* tree-cfg.c (make_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:
branches/gcc-4_8-branch/libgomp/testsuite/libgomp.c/pr66133.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/omp-low.c
branches/gcc-4_8-branch/gcc/tree-cfg.c
branches/gcc-4_8-branch/libgomp/ChangeLog