This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/27328] ICE with -fopenmp and goto
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Apr 2006 15:39:00 -0000
- Subject: [Bug middle-end/27328] ICE with -fopenmp and goto
- References: <bug-27328-1771@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from jakub at gcc dot gnu dot org 2006-04-27 15:38 -------
This is not specific to goto, any OMP structured block which the initial cfg
pass proves it will never return is a problem. In that case, the corresponding
OMP_RETURN is optimized out as unreachable. The first ICE is fairly easy
to fix:
--- omp-low.c.jj2 2006-04-27 16:35:04.000000000 +0200
+++ omp-low.c 2006-04-27 17:29:32.000000000 +0200
@@ -2231,6 +2231,11 @@ remove_exit_barrier (struct omp_region *
exit_bb = region->exit;
+ /* If the parallel region doesn't return, we don't have REGIOn->EXIT
+ block at all. */
+ if (! exit_bb)
+ return;
+
/* The last insn in the block will be the parallel's OMP_RETURN. The
workshare's OMP_RETURN will be in a preceding block. The kinds of
statements that can appear in between are extremely limited -- no
but with this, we ICE in move_sese_region_to_fn and there it will be harder
to deal with it.
--
jakub at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rth at gcc dot gnu dot org,
| |dnovillo at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27328