diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1a5a9a637b64..9776a81048f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-06-17 David Daney + + * jump.c (cleanup_barriers): Handle case of no insns before a + barrier. + 2009-06-17 David Edelsohn * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode. diff --git a/gcc/jump.c b/gcc/jump.c index 350de16f07c5..7fe34f186616 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 873ec275d0ec..5b7b369c9075 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-06-17 David Daney + + * gcc.dg/builtin-unreachable-3.c: New test. + 2009-06-17 David Daney * gcc.target/i386/builtin-unreachable.c: New test. 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 000000000000..6ad69261e1dc --- /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 (); +}