[PATCH] Fix Ada regressions caused by my last builtins.c patch (PR ada/23593)

Jakub Jelinek jakub@redhat.com
Sat Aug 27 21:26:00 GMT 2005


Hi!

I misread what component_ref_for_mem_expr is doing.  It
doesn't skip nops etc. in between COMPONENT_REFs, only around
the first COMPONENT_REF and inside of the last COMPONENT_REF.
Bootstrapped/regtested on i386-linux, fixes the 5 Ada regressions
mentioned in the PR.
Ok for HEAD/4.0?

2005-08-27  Jakub Jelinek  <jakub@redhat.com>

	PR ada/23593
	* builtins.c (get_memory_rtx): Don't strip nops
	in between COMPONENT_REFs.

--- gcc/builtins.c.jj	2005-08-27 10:57:54.000000000 +0200
+++ gcc/builtins.c	2005-08-27 18:46:30.000000000 +0200
@@ -1108,13 +1108,6 @@ get_memory_rtx (tree exp, tree len)
 
 	      mem_expr = TREE_OPERAND (mem_expr, 0);
 	      inner = TREE_OPERAND (inner, 0);
-
-	      while (TREE_CODE (inner) == NOP_EXPR
-		     || TREE_CODE (inner) == CONVERT_EXPR
-		     || TREE_CODE (inner) == NON_LVALUE_EXPR
-		     || TREE_CODE (inner) == VIEW_CONVERT_EXPR
-		     || TREE_CODE (inner) == SAVE_EXPR)
-		inner = TREE_OPERAND (inner, 0);
 	    }
 
 	  if (mem_expr == NULL)

	Jakub



More information about the Gcc-patches mailing list