Ping: [Patch]: Fix ICE by expand_expr_addr_expr_1

2012-05-29 Thread Tristan Gingold
Ping for:


On May 15, 2012, at 10:59 AM, Tristan Gingold wrote:

 Hi,
 
 I got ICE in plus_constant (after the assertions were added) due to 
 expand_expr_addr_expr_1 during build on ia64/Openvms.
 
 This function is called with TMODE == SImode (32 bit pointers) but EXP 
 designating a variable on the frame (whose register is DImode).
 Hence the ICE.
 
 Fixed by the following patch.
 No regression on x86-64 GNU/Linux.
 
 Ok for trunk ?
 
 Tristan.
 
 2012-05-15  Tristan Gingold  ging...@adacore.com
 
   * expr.c (expand_expr_addr_expr_1): Call
   convert_memory_address_addr_space.
 
 diff --git a/gcc/expr.c b/gcc/expr.c
 index 3edb4a2..1b0ad8d 100644
 --- a/gcc/expr.c
 +++ b/gcc/expr.c
 @@ -7600,6 +7600,7 @@ expand_expr_addr_expr_1 (tree exp, rtx target, enum 
 machin
   TYPE_USER_ALIGN (TREE_TYPE (inner)) = 1;
 }
   result = expand_expr_addr_expr_1 (inner, subtarget, tmode, modifier, as);
 +  result = convert_memory_address_addr_space (tmode, result, as);
 
   if (offset)
 {
 



[Patch]: Fix ICE by expand_expr_addr_expr_1

2012-05-15 Thread Tristan Gingold
Hi,

I got ICE in plus_constant (after the assertions were added) due to 
expand_expr_addr_expr_1 during build on ia64/Openvms.

This function is called with TMODE == SImode (32 bit pointers) but EXP 
designating a variable on the frame (whose register is DImode).
Hence the ICE.

Fixed by the following patch.
No regression on x86-64 GNU/Linux.

Ok for trunk ?

Tristan.

2012-05-15  Tristan Gingold  ging...@adacore.com

* expr.c (expand_expr_addr_expr_1): Call
convert_memory_address_addr_space.

diff --git a/gcc/expr.c b/gcc/expr.c
index 3edb4a2..1b0ad8d 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -7600,6 +7600,7 @@ expand_expr_addr_expr_1 (tree exp, rtx target, enum machin
   TYPE_USER_ALIGN (TREE_TYPE (inner)) = 1;
 }
   result = expand_expr_addr_expr_1 (inner, subtarget, tmode, modifier, as);
+  result = convert_memory_address_addr_space (tmode, result, as);
 
   if (offset)
 {