jump.c (cleanup_barriers): Handle case of no insns before a barrier.
authorDavid Daney <ddaney@caviumnetworks.com>
Wed, 17 Jun 2009 19:27:35 +0000 (19:27 +0000)
committerDavid Daney <daney@gcc.gnu.org>
Wed, 17 Jun 2009 19:27:35 +0000 (19:27 +0000)
2009-06-17  David Daney  <ddaney@caviumnetworks.com>

* jump.c (cleanup_barriers): Handle case of no insns before a
barrier.

2009-06-17  David Daney  <ddaney@caviumnetworks.com>

* gcc.dg/builtin-unreachable-3.c: New test.

From-SVN: r148624

gcc/ChangeLog
gcc/jump.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/builtin-unreachable-3.c [new file with mode: 0644]

index 1a5a9a6..9776a81 100644 (file)
@@ -1,3 +1,8 @@
+2009-06-17  David Daney  <ddaney@caviumnetworks.com>
+
+       * jump.c (cleanup_barriers): Handle case of no insns before a
+       barrier.
+
 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
 
        * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
index 350de16..7fe34f1 100644 (file)
@@ -113,6 +113,8 @@ cleanup_barriers (void)
       if (BARRIER_P (insn))
        {
          prev = prev_nonnote_insn (insn);
+         if (!prev)
+           continue;
          if (BARRIER_P (prev))
            delete_insn (insn);
          else if (prev != PREV_INSN (insn))
index 873ec27..5b7b369 100644 (file)
@@ -1,5 +1,9 @@
 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
 
+       * gcc.dg/builtin-unreachable-3.c: New test.
+
+2009-06-17  David Daney  <ddaney@caviumnetworks.com>
+
        * gcc.target/i386/builtin-unreachable.c: New test.
 
 2009-06-17  Ian Lance Taylor  <iant@google.com>
diff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-3.c b/gcc/testsuite/gcc.dg/builtin-unreachable-3.c
new file mode 100644 (file)
index 0000000..6ad6926
--- /dev/null
@@ -0,0 +1,9 @@
+/* Check that a function containing only __builtin_unreachable()
+   doesn't ICE.  */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+const char *
+f (void)
+{
+  __builtin_unreachable ();
+}