exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on condition for assignment...
authorThomas Quinot <quinot@adacore.com>
Mon, 26 May 2008 13:43:43 +0000 (15:43 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 26 May 2008 13:43:43 +0000 (15:43 +0200)
2008-05-26  Thomas Quinot  <quinot@adacore.com>

* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
condition for assignment to temporary.

From-SVN: r135924

gcc/ada/exp_ch5.adb

index 00ab0d6fa9d54ea66e1ba9c87098036053d23617..8d8a281c7dae896ba3e4439f610ba785b29a7ed3 100644 (file)
@@ -734,8 +734,8 @@ package body Exp_Ch5 is
               and then not No_Ctrl_Actions (N)
             then
                declare
-                  Proc : constant Entity_Id :=
-                           TSS (Base_Type (L_Type), TSS_Slice_Assign);
+                  Proc    : constant Entity_Id :=
+                              TSS (Base_Type (L_Type), TSS_Slice_Assign);
                   Actuals : List_Id;
 
                begin
@@ -872,7 +872,7 @@ package body Exp_Ch5 is
                --  explicit bounds of right and left hand sides.
 
                declare
-                  Proc    : constant Node_Id :=
+                  Proc    : constant Entity_Id :=
                               TSS (Base_Type (L_Type), TSS_Slice_Assign);
                   Actuals : List_Id;
 
@@ -4186,13 +4186,16 @@ package body Exp_Ch5 is
       if not Ctrl_Act then
          null;
 
-      --  The left hand side is an uninitialized temporary
+      --  The left hand side is an uninitialized temporary object
 
       elsif Nkind (L) = N_Type_Conversion
         and then Is_Entity_Name (Expression (L))
+        and then Nkind (Parent (Entity (Expression (L))))
+                   = N_Object_Declaration
         and then No_Initialization (Parent (Entity (Expression (L))))
       then
          null;
+
       else
          Append_List_To (Res,
            Make_Final_Call (