This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/46499] [4.5/4.6 Regression] gcc.c-torture/execute/20051021-1.c FAILs with -fno-tree-dominator-opts -fno-tree-ccp
- 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: Mon, 22 Nov 2010 14:10:33 +0000
- Subject: [Bug middle-end/46499] [4.5/4.6 Regression] gcc.c-torture/execute/20051021-1.c FAILs with -fno-tree-dominator-opts -fno-tree-ccp
- Auto-submitted: auto-generated
- References: <bug-46499-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46499
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2010-11-22 14:10:16 UTC ---
Created attachment 22483
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22483
gcc46-pr46499.patch
Untested fix. We have since last:
(jump_insn 8 7 9 (set (pc)
(label_ref 0)) pr46499-1.c:26 -1
(nil))
(barrier 9 8 10)
(jump_insn 10 9 11 (set (pc)
(label_ref 0)) pr46499-1.c:26 -1
(nil))
(barrier 11 10 0)
and maybe_cleanup_end_of_basic_block, as it sees there is no drop through label
and thus all jumps must go to the other edge, decides to remove the first jump,
but doesn't remove the barrier right after it, and a barrier left in the middle
of a bb after no insn that could cause the barrier of course confuses
everything and is wrong, because we really want to jump to the target label
instead of assuming the spot is never reachable.