trans.c (gnat_to_gnu): Do not translate the Etype of the node before translating...
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 22 Jan 2013 10:05:45 +0000 (10:05 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 22 Jan 2013 10:05:45 +0000 (10:05 +0000)
* gcc-interface/trans.c (gnat_to_gnu) <N_Expression_With_Actions>: Do
not translate the Etype of the node before translating the Actions.

From-SVN: r195368

gcc/ada/ChangeLog
gcc/ada/gcc-interface/trans.c

index 263113b..d6a579e 100644 (file)
@@ -1,5 +1,10 @@
 2013-01-22  Eric Botcazou  <ebotcazou@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.
+
+2013-01-22  Eric Botcazou  <ebotcazou@adacore.com>
+
        * gcc-interface/trans.c (Pragma_to_gnu) <Name_Space>: Use optimize_size
        instead of optimize and adjust warning message.
        (Compilation_Unit_to_gnu): Process pragmas preceding the unit.
index 6bb2e5b..1d25b0f 100644 (file)
@@ -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: