aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Daney <ddaney@caviumnetworks.com>2009-06-17 19:27:35 +0000
committerDavid Daney <daney@gcc.gnu.org>2009-06-17 19:27:35 +0000
commit2cb0a60da1e179e012a43c23c4c1a7e875fd9504 (patch)
tree0ee9c88e716310a821d02281dcf3c8aa315aa9b9
parentf9c3538320c5f1a6dee5d5ee26c88a90761aab2f (diff)
downloadgcc-2cb0a60da1e179e012a43c23c4c1a7e875fd9504.zip
gcc-2cb0a60da1e179e012a43c23c4c1a7e875fd9504.tar.gz
gcc-2cb0a60da1e179e012a43c23c4c1a7e875fd9504.tar.bz2
jump.c (cleanup_barriers): Handle case of no insns before a barrier.
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/jump.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/builtin-unreachable-3.c9
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1a5a9a6..9776a81 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/jump.c b/gcc/jump.c
index 350de16..7fe34f1 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -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))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 873ec27..5b7b369 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..6ad6926
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/builtin-unreachable-3.c
@@ -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 ();
+}