Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/gpl3/gcc/dist/gcc Fix infinite recursion when build...
details: https://anonhg.NetBSD.org/src/rev/852f3d627b82
branches: trunk
changeset: 345337:852f3d627b82
user: christos <christos%NetBSD.org@localhost>
date: Thu May 19 20:27:36 2016 +0000
description:
Fix infinite recursion when building i386 -fPIE in
src/external/mit/xorg/lib/libxcb/xkb.
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=231599
PR debug/67355
* var-tracking.c (reverse_op): Don't add dummy zero to reverse
ops that simplify back to the original value.
* alias.c (refs_newer_value_p): Cut off recursion for
expressions containing the original value.
diffstat:
external/gpl3/gcc/dist/gcc/alias.c | 4 ++--
external/gpl3/gcc/dist/gcc/var-tracking.c | 5 -----
2 files changed, 2 insertions(+), 7 deletions(-)
diffs (36 lines):
diff -r 045b30f8772b -r 852f3d627b82 external/gpl3/gcc/dist/gcc/alias.c
--- a/external/gpl3/gcc/dist/gcc/alias.c Thu May 19 18:32:29 2016 +0000
+++ b/external/gpl3/gcc/dist/gcc/alias.c Thu May 19 20:27:36 2016 +0000
@@ -1880,7 +1880,7 @@
}
/* Return TRUE if EXPR refers to a VALUE whose uid is greater than
- that of V. */
+ (or equal to) that of V. */
static bool
refs_newer_value_p (const_rtx expr, rtx v)
@@ -1888,7 +1888,7 @@
int minuid = CSELIB_VAL_PTR (v)->uid;
subrtx_iterator::array_type array;
FOR_EACH_SUBRTX (iter, array, expr, NONCONST)
- if (GET_CODE (*iter) == VALUE && CSELIB_VAL_PTR (*iter)->uid > minuid)
+ if (GET_CODE (*iter) == VALUE && CSELIB_VAL_PTR (*iter)->uid >= minuid)
return true;
return false;
}
diff -r 045b30f8772b -r 852f3d627b82 external/gpl3/gcc/dist/gcc/var-tracking.c
--- a/external/gpl3/gcc/dist/gcc/var-tracking.c Thu May 19 18:32:29 2016 +0000
+++ b/external/gpl3/gcc/dist/gcc/var-tracking.c Thu May 19 20:27:36 2016 +0000
@@ -5833,11 +5833,6 @@
return;
}
ret = simplify_gen_binary (code, GET_MODE (val), val, arg);
- if (ret == val)
- /* Ensure ret isn't VALUE itself (which can happen e.g. for
- (plus (reg1) (reg2)) when reg2 is known to be 0), as that
- breaks a lot of routines during var-tracking. */
- ret = gen_rtx_fmt_ee (PLUS, GET_MODE (val), val, const0_rtx);
break;
default:
gcc_unreachable ();
Home |
Main Index |
Thread Index |
Old Index