This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PR54177] Deal with var_lowpart failure in function parameters


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 <aoliva@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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]