if (next)
PREV_INSN (next) = prev;
- /* Basic block can begin with either LABEL or
- NOTE_INSN_BASIC_BLOCK. */
- gcc_assert (BB_HEAD (bb) != insn);
+ if (bb)
+ {
+ /* Basic block can begin with either LABEL or
+ NOTE_INSN_BASIC_BLOCK. */
+ gcc_assert (BB_HEAD (bb) != insn);
- /* Check if we are removing last insn in the BB. */
- if (BB_END (bb) == insn)
- BB_END (bb) = prev;
+ /* Check if we are removing last insn in the BB. */
+ if (BB_END (bb) == insn)
+ BB_END (bb) = prev;
+ }
/* See sched_analyze to see how these are handled. */
if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_EH_REGION_BEG
{
rtx prev = PREV_INSN (insn);
- while (insn != tail && NOTE_P (insn))
+ while (insn != tail && NOTE_NOT_BB_P (insn))
{
rtx next = NEXT_INSN (insn);
if (next)
PREV_INSN (next) = prev;
- /* Basic block can begin with either LABEL or
- NOTE_INSN_BASIC_BLOCK. */
- gcc_assert (BB_HEAD (bb) != insn);
+ if (bb)
+ {
+ /* Basic block can begin with either LABEL or
+ NOTE_INSN_BASIC_BLOCK. */
+ gcc_assert (BB_HEAD (bb) != insn);
- /* Check if we are removing last insn in the BB. */
- if (BB_END (bb) == insn)
- BB_END (bb) = prev;
+ /* Check if we are removing last insn in the BB. */
+ if (BB_END (bb) == insn)
+ BB_END (bb) = prev;
+ }
/* Record line-number notes so they can be reused. */
LINE_NOTE (insn) = insn;
+2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+ * gcc.c-torture/compile/20060609-1.c: New test.
+
+ PR target/27863
+ * gcc.c-torture/compile/pr27863.c: New test.
+
2006-06-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/27830
--- /dev/null
+/* This test used to ICE on IA64. */
+int __strspn_c2 (__const char *__s, int __accept1, int __accept2)
+{
+ register long unsigned int __result = 0;
+ while (__s[__result] == __accept1 || __s[__result] == __accept2)
+ return __result;
+}