2013-12-17 Teresa Johnson <tejohnson@google.com>
authortejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Dec 2013 22:35:38 +0000 (22:35 +0000)
committertejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Dec 2013 22:35:38 +0000 (22:35 +0000)
PR gcov-profile/59527
* cfgrtl.c (fixup_reorder_chain): Handle a region-crossing
        branch, which can't be eliminated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206072 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cfgrtl.c

index 2c10c04..a90f8af 100644 (file)
@@ -1,3 +1,9 @@
+2013-12-17  Teresa Johnson  <tejohnson@google.com>
+
+       PR gcov-profile/59527
+       * cfgrtl.c (fixup_reorder_chain): Handle a region-crossing
+       branch, which can't be eliminated.
+
 2013-12-18  Martin Liska  <marxin.liska@gmail.com>
            Jan Hubicka  <jh@suse.cz>
 
index 1a63249..18e65bd 100644 (file)
@@ -3736,7 +3736,8 @@ fixup_reorder_chain (void)
              if (!e_fall)
                {
                  gcc_assert (!onlyjump_p (bb_end_insn)
-                             || returnjump_p (bb_end_insn));
+                             || returnjump_p (bb_end_insn)
+                              || (e_taken->flags & EDGE_CROSSING));
                  emit_barrier_after (bb_end_insn);
                  continue;
                }