This is a patchlet to fix a (potential) regression introduced by the use of 
N_Expression_With_Actions in some constructs.

Tested on x86_64-suse-linux, applied on the mainline.


2013-01-22  Eric Botcazou  <ebotca...@adacore.com>

        * gcc-interface/trans.c (gnat_to_gnu) <N_Expression_With_Actions>: Do
        not translate the Etype of the node before translating the Actions.


-- 
Eric Botcazou
Index: gcc-interface/trans.c
===================================================================
--- gcc-interface/trans.c	(revision 195366)
+++ gcc-interface/trans.c	(working copy)
@@ -6810,7 +6810,6 @@ gnat_to_gnu (Node_Id gnat_node)
     /****************/
 
     case N_Expression_With_Actions:
-      gnu_result_type = get_unpadded_type (Etype (gnat_node));
       /* This construct doesn't define a scope so we don't wrap the statement
 	 list in a BIND_EXPR; however, we wrap it in a SAVE_EXPR to protect it
 	 from unsharing.  */
@@ -6820,6 +6819,7 @@ gnat_to_gnu (Node_Id gnat_node)
       gnu_expr = gnat_to_gnu (Expression (gnat_node));
       gnu_result
 	= build_compound_expr (TREE_TYPE (gnu_expr), gnu_result, gnu_expr);
+      gnu_result_type = get_unpadded_type (Etype (gnat_node));
       break;
 
     case N_Freeze_Entity:

Reply via email to