Uros has already taken care of the main patch for the problem, but I feel it's appropriate to protect vt_add_function_parameter should val_lowpart actually return NULL.
I'm checking this in as obvious. Regstrapped on x86_64-linux-gnu and i686-linux-gnu.
Deal with var_lowpart failure in function parameters. From: Alexandre Oliva <aol...@redhat.com> for gcc/ChangeLog * var-tracking.c (vt_add_function_parameter): Bail if var_lowpart fails. --- gcc/var-tracking.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index 9f5bc12..bbd2f4b 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -9428,6 +9428,7 @@ vt_add_function_parameter (tree parm) && GET_CODE (incoming) != PARALLEL) { cselib_val *val; + rtx lowpart; /* ??? We shouldn't ever hit this, but it may happen because arguments passed by invisible reference aren't dealt with @@ -9436,7 +9437,11 @@ vt_add_function_parameter (tree parm) if (offset) return; - val = cselib_lookup_from_insn (var_lowpart (mode, incoming), mode, true, + lowpart = var_lowpart (mode, incoming); + if (!lowpart) + return; + + val = cselib_lookup_from_insn (lowpart, mode, true, VOIDmode, get_insns ()); /* ??? Float-typed values in memory are not handled by
-- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist Red Hat Brazil Compiler Engineer