exp_ch5.adb (Expand_Assign_Record): Within an initialization procedure for a derived...
authorEd Schonberg <schonberg@adacore.com>
Tue, 20 May 2008 12:45:38 +0000 (14:45 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 20 May 2008 12:45:38 +0000 (14:45 +0200)
2008-05-20  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Expand_Assign_Record): Within an initialization
procedure for a derived type retrieve the discriminant values from the
parent using the corresponding discriminant.
(Expand_N_Assignment_Statement): Skip generation of implicit
if-statement associated with controlled types if we are
compiling with restriction No_Finalization.

From-SVN: r135622

gcc/ada/exp_ch5.adb

index 0018a673522cbb4279373437bfb5702d1e26f88c..00ab0d6fa9d54ea66e1ba9c87098036053d23617 100644 (file)
@@ -1886,8 +1886,11 @@ package body Exp_Ch5 is
                --       <code for controlled and/or tagged assignment>
                --    end if;
 
+               --  Skip this if Restriction (No_Finalization) is active
+
                if not Statically_Different (Lhs, Rhs)
                  and then Expand_Ctrl_Actions
+                 and then not Restriction_Active (No_Finalization)
                then
                   L := New_List (
                     Make_Implicit_If_Statement (N,