From 8a1eb57b7dd9cb403765eb9c4a401e0687d215de Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 12 Nov 2009 08:30:05 +0100 Subject: re PR middle-end/41930 (cc1 SEGV compiling maxval_r16.c) PR middle-end/41930 * simplify-rtx.c (simplify_replace_fn_rtx) : Skip processing if XEXP (x, i) is NULL. From-SVN: r154116 --- gcc/simplify-rtx.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'gcc/simplify-rtx.c') diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index ee119bc..c042777 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -489,12 +489,15 @@ simplify_replace_fn_rtx (rtx x, const_rtx old_rtx, break; case 'e': - op = simplify_replace_fn_rtx (XEXP (x, i), old_rtx, fn, data); - if (op != XEXP (x, i)) + if (XEXP (x, i)) { - if (x == newx) - newx = shallow_copy_rtx (x); - XEXP (newx, i) = op; + op = simplify_replace_fn_rtx (XEXP (x, i), old_rtx, fn, data); + if (op != XEXP (x, i)) + { + if (x == newx) + newx = shallow_copy_rtx (x); + XEXP (newx, i) = op; + } } break; } -- cgit v1.1