X-Git-Url: http://git.ozo.com/?p=openwrt-10.03%2F.git;a=blobdiff_plain;f=toolchain%2Fgcc%2Fpatches%2Fllvm%2F951-bug_37014.patch;fp=toolchain%2Fgcc%2Fpatches%2Fllvm%2F951-bug_37014.patch;h=0000000000000000000000000000000000000000;hp=9f8aaf7428ca1372a24254e532ca478cc53799a5;hb=eacfe9260e88fc79aa2a1d97b524e12c7f6f49d6;hpb=95612bcef8dcdc3eccd4b0589ceada865ece6dbd diff --git a/toolchain/gcc/patches/llvm/951-bug_37014.patch b/toolchain/gcc/patches/llvm/951-bug_37014.patch deleted file mode 100644 index 9f8aaf742..000000000 --- a/toolchain/gcc/patches/llvm/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 @@ do_jump (tree exp, rtx if_false_label, r - break; - } - -- case TRUTH_ANDIF_EXPR: -- case TRUTH_ORIF_EXPR: - case COMPOUND_EXPR: - /* Lowered by gimplify.c. */ - gcc_unreachable (); -@@ -518,6 +516,7 @@ do_jump (tree exp, rtx if_false_label, r - 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 @@ do_jump (tree exp, rtx if_false_label, r - 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 -@@ -8634,7 +8634,10 @@ expand_expr_real_1 (tree exp, rtx target - /* 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 -@@ -8832,8 +8835,6 @@ expand_expr_real_1 (tree exp, rtx target - 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); -+}