+2010-12-07 Jakub Jelinek <jakub@redhat.com>
+
+ Backport from mainline
+ 2010-11-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/46629
+ * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
+ instead of insn with any_condjump_p.
+
+ 2010-11-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/46499
+ * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
+ following unconditional jumps.
+
2010-12-07 Sebastian Pop <sebastian.pop@amd.com>
Backport from mainline:
{
insn = PREV_INSN (insn);
if (JUMP_P (NEXT_INSN (insn)))
- delete_insn (NEXT_INSN (insn));
+ {
+ if (!any_condjump_p (NEXT_INSN (insn)))
+ {
+ gcc_assert (BARRIER_P (NEXT_INSN (NEXT_INSN (insn))));
+ delete_insn (NEXT_INSN (NEXT_INSN (insn)));
+ }
+ delete_insn (NEXT_INSN (insn));
+ }
}
}
}
2010-12-07 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
+ 2010-11-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/46499
+ * gcc.dg/pr46499-1.c: New test.
+ * gcc.dg/pr46499-2.c: New test.
+
2010-11-20 Jakub Jelinek <jakub@redhat.com>
PR c++/46538
--- /dev/null
+/* PR middle-end/46499 */
+/* { dg-do run } */
+/* { dg-options "-O -fno-omit-frame-pointer -fno-tree-ccp -fno-tree-dominator-opts -finline-small-functions" } */
+
+extern void abort (void);
+
+int count = 0;
+
+int
+foo (void)
+{
+ count++;
+ return 0;
+}
+
+int
+bar (void)
+{
+ count++;
+ return 0;
+}
+
+int
+main ()
+{
+ if ((foo () == 1) & (bar () == 1))
+ abort ();
+ if (count != 2)
+ abort ();
+ return 0;
+}
--- /dev/null
+/* PR middle-end/46499 */
+/* { dg-do compile } */
+/* { dg-options "-O -fno-tree-ccp -fno-tree-dominator-opts" } */
+
+extern void abort (void);
+
+static inline int
+foo (void)
+{
+ return 0;
+}
+
+int
+main ()
+{
+ if ((foo () == 1) & (foo () == 1))
+ abort ();
+ return 0;
+}