mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-27 19:25:21 +02:00
add patches to fixes gcc 4.2.x bugs:
- fix gcc ICE when compiling package/ath9k (closes: #3816) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37014 - fix "undefined reference to `fmsub'" error on powerpc http://bugs.uclibc.org/view.php?id=1588 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12623 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
ac1c761834
commit
e55a04e2ce
76
toolchain/gcc/patches/4.2.0/951-bug_37014.patch
Normal file
76
toolchain/gcc/patches/4.2.0/951-bug_37014.patch
Normal file
@ -0,0 +1,76 @@
|
||||
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);
|
||||
+}
|
23
toolchain/gcc/patches/4.2.1/920-soft-float.patch
Normal file
23
toolchain/gcc/patches/4.2.1/920-soft-float.patch
Normal file
@ -0,0 +1,23 @@
|
||||
http://bugs.uclibc.org/view.php?id=1588
|
||||
|
||||
diff -uNpr gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c
|
||||
--- gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c 2007-03-05 11:54:00.000000000 -0500
|
||||
+++ gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c 2008-01-31 17:51:24.000000000 -0500
|
||||
@@ -70,6 +70,8 @@ Software Foundation, 51 Franklin Street,
|
||||
but GCC currently generates poor code when a union is used to turn
|
||||
a long double into a pair of doubles. */
|
||||
|
||||
+#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
+
|
||||
long double __gcc_qadd (double, double, double, double);
|
||||
long double __gcc_qsub (double, double, double, double);
|
||||
long double __gcc_qmul (double, double, double, double);
|
||||
@@ -219,8 +221,6 @@ __gcc_qdiv (double a, double b, double c
|
||||
return z.ldval;
|
||||
}
|
||||
|
||||
-#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
-
|
||||
long double __gcc_qneg (double, double);
|
||||
int __gcc_qeq (double, double, double, double);
|
||||
int __gcc_qne (double, double, double, double);
|
76
toolchain/gcc/patches/4.2.1/951-bug_37014.patch
Normal file
76
toolchain/gcc/patches/4.2.1/951-bug_37014.patch
Normal file
@ -0,0 +1,76 @@
|
||||
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
|
||||
@@ -8563,7 +8563,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
|
||||
@@ -8761,8 +8774,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);
|
||||
+}
|
23
toolchain/gcc/patches/4.2.2/920-soft-float.patch
Normal file
23
toolchain/gcc/patches/4.2.2/920-soft-float.patch
Normal file
@ -0,0 +1,23 @@
|
||||
http://bugs.uclibc.org/view.php?id=1588
|
||||
|
||||
diff -uNpr gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c
|
||||
--- gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c 2007-03-05 11:54:00.000000000 -0500
|
||||
+++ gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c 2008-01-31 17:51:24.000000000 -0500
|
||||
@@ -70,6 +70,8 @@ Software Foundation, 51 Franklin Street,
|
||||
but GCC currently generates poor code when a union is used to turn
|
||||
a long double into a pair of doubles. */
|
||||
|
||||
+#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
+
|
||||
long double __gcc_qadd (double, double, double, double);
|
||||
long double __gcc_qsub (double, double, double, double);
|
||||
long double __gcc_qmul (double, double, double, double);
|
||||
@@ -219,8 +221,6 @@ __gcc_qdiv (double a, double b, double c
|
||||
return z.ldval;
|
||||
}
|
||||
|
||||
-#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
-
|
||||
long double __gcc_qneg (double, double);
|
||||
int __gcc_qeq (double, double, double, double);
|
||||
int __gcc_qne (double, double, double, double);
|
76
toolchain/gcc/patches/4.2.2/951-bug_37014.patch
Normal file
76
toolchain/gcc/patches/4.2.2/951-bug_37014.patch
Normal file
@ -0,0 +1,76 @@
|
||||
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
|
||||
@@ -8514,7 +8514,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
|
||||
@@ -8712,8 +8725,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);
|
||||
+}
|
23
toolchain/gcc/patches/4.2.3/920-soft-float.patch
Normal file
23
toolchain/gcc/patches/4.2.3/920-soft-float.patch
Normal file
@ -0,0 +1,23 @@
|
||||
http://bugs.uclibc.org/view.php?id=1588
|
||||
|
||||
diff -uNpr gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c
|
||||
--- gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c 2007-03-05 11:54:00.000000000 -0500
|
||||
+++ gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c 2008-01-31 17:51:24.000000000 -0500
|
||||
@@ -70,6 +70,8 @@ Software Foundation, 51 Franklin Street,
|
||||
but GCC currently generates poor code when a union is used to turn
|
||||
a long double into a pair of doubles. */
|
||||
|
||||
+#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
+
|
||||
long double __gcc_qadd (double, double, double, double);
|
||||
long double __gcc_qsub (double, double, double, double);
|
||||
long double __gcc_qmul (double, double, double, double);
|
||||
@@ -219,8 +221,6 @@ __gcc_qdiv (double a, double b, double c
|
||||
return z.ldval;
|
||||
}
|
||||
|
||||
-#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
-
|
||||
long double __gcc_qneg (double, double);
|
||||
int __gcc_qeq (double, double, double, double);
|
||||
int __gcc_qne (double, double, double, double);
|
76
toolchain/gcc/patches/4.2.3/951-bug_37014.patch
Normal file
76
toolchain/gcc/patches/4.2.3/951-bug_37014.patch
Normal file
@ -0,0 +1,76 @@
|
||||
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
|
||||
@@ -8563,7 +8563,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
|
||||
@@ -8761,8 +8774,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);
|
||||
+}
|
23
toolchain/gcc/patches/4.2.4/920-soft-float.patch
Normal file
23
toolchain/gcc/patches/4.2.4/920-soft-float.patch
Normal file
@ -0,0 +1,23 @@
|
||||
http://bugs.uclibc.org/view.php?id=1588
|
||||
|
||||
diff -uNpr gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c
|
||||
--- gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c 2007-03-05 11:54:00.000000000 -0500
|
||||
+++ gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c 2008-01-31 17:51:24.000000000 -0500
|
||||
@@ -70,6 +70,8 @@ Software Foundation, 51 Franklin Street,
|
||||
but GCC currently generates poor code when a union is used to turn
|
||||
a long double into a pair of doubles. */
|
||||
|
||||
+#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
+
|
||||
long double __gcc_qadd (double, double, double, double);
|
||||
long double __gcc_qsub (double, double, double, double);
|
||||
long double __gcc_qmul (double, double, double, double);
|
||||
@@ -219,8 +221,6 @@ __gcc_qdiv (double a, double b, double c
|
||||
return z.ldval;
|
||||
}
|
||||
|
||||
-#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
|
||||
-
|
||||
long double __gcc_qneg (double, double);
|
||||
int __gcc_qeq (double, double, double, double);
|
||||
int __gcc_qne (double, double, double, double);
|
76
toolchain/gcc/patches/4.2.4/951-bug_37014.patch
Normal file
76
toolchain/gcc/patches/4.2.4/951-bug_37014.patch
Normal file
@ -0,0 +1,76 @@
|
||||
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
|
||||
@@ -8556,7 +8556,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
|
||||
@@ -8754,8 +8767,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);
|
||||
+}
|
Loading…
Reference in New Issue
Block a user