OSDN Git Service

* sem_ch3.adb (Analyze_Object_Declaration): If expression is an
authorbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Dec 2001 19:34:44 +0000 (19:34 +0000)
committerbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Dec 2001 19:34:44 +0000 (19:34 +0000)
aggregate with static wrong size, attach generated Raise node to
declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47685 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/sem_ch3.adb

index d402685..d49a0c7 100644 (file)
@@ -1,3 +1,9 @@
+2001-12-05  Ed Schonberg <schonber@gnat.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): If expression is an 
+       aggregate with static wrong size, attach generated Raise node to 
+       declaration.
+
 2001-12-05  Robert Dewar <dewar@gnat.com>
 
        * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute. 
index 2b481bd..89c5ac6 100644 (file)
@@ -1604,6 +1604,11 @@ package body Sem_Ch3 is
          if not Is_Constrained (T) then
             null;
 
+         elsif Nkind (E) = N_Raise_Constraint_Error then
+            --  Aggregate is statically illegal. Place back in declaration.
+            Set_Expression (N, E);
+            Set_No_Initialization (N, False);
+
          elsif T = Etype (E) then
             null;