aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc/patches/4.2.0/951-bug_37014.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/gcc/patches/4.2.0/951-bug_37014.patch')
-rw-r--r--toolchain/gcc/patches/4.2.0/951-bug_37014.patch76
1 files changed, 0 insertions, 76 deletions
diff --git a/toolchain/gcc/patches/4.2.0/951-bug_37014.patch b/toolchain/gcc/patches/4.2.0/951-bug_37014.patch
deleted file mode 100644
index 0da7c2094f..0000000000
--- a/toolchain/gcc/patches/4.2.0/951-bug_37014.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37014
-
---- a/gcc/dojump.c
-+++ b/gcc/dojump.c
-@@ -307,8 +307,6 @@
- break;
- }
-
-- case TRUTH_ANDIF_EXPR:
-- case TRUTH_ORIF_EXPR:
- case COMPOUND_EXPR:
- /* Lowered by gimplify.c. */
- gcc_unreachable ();
-@@ -518,6 +516,7 @@
- if (BRANCH_COST >= 4 || TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1)))
- goto normal;
-
-+ case TRUTH_ANDIF_EXPR:
- if (if_false_label == NULL_RTX)
- {
- drop_through_label = gen_label_rtx ();
-@@ -538,6 +537,7 @@
- if (BRANCH_COST >= 4 || TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1)))
- goto normal;
-
-+ case TRUTH_ORIF_EXPR:
- if (if_true_label == NULL_RTX)
- {
- drop_through_label = gen_label_rtx ();
---- a/gcc/expr.c
-+++ b/gcc/expr.c
-@@ -8466,7 +8466,10 @@
- /* If no set-flag instruction, must generate a conditional store
- into a temporary variable. Drop through and handle this
- like && and ||. */
--
-+ /* Although TRUTH_{AND,OR}IF_EXPR aren't present in GIMPLE, they
-+ are occassionally created by folding during expansion. */
-+ case TRUTH_ANDIF_EXPR:
-+ case TRUTH_ORIF_EXPR:
- if (! ignore
- && (target == 0
- || modifier == EXPAND_STACK_PARM
-@@ -8664,8 +8667,6 @@
- case POSTDECREMENT_EXPR:
- case LOOP_EXPR:
- case EXIT_EXPR:
-- case TRUTH_ANDIF_EXPR:
-- case TRUTH_ORIF_EXPR:
- /* Lowered by gimplify.c. */
- gcc_unreachable ();
-
---- /dev/null
-+++ b/gcc/testsuite/gcc.c-torture/compile/20080812-1.c
-@@ -0,0 +1,21 @@
-+/* PR middle-end/37014 */
-+
-+void bar (signed char *);
-+
-+void
-+foo (int x, int y)
-+{
-+ int i;
-+ signed char a[123], b[123], c;
-+ for (i = 0; i < 123; i++)
-+ {
-+ int e = y - x;
-+ int d = e < 0 ? -e : e;
-+ c = d < 75;
-+ a[y] = c;
-+ b[y] = c;
-+ y--;
-+ }
-+ bar (b);
-+ bar (a);
-+}