sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype to the known...
authorGary Dismukes <dismukes@adacore.com>
Tue, 27 May 2008 08:50:04 +0000 (10:50 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 27 May 2008 08:50:04 +0000 (10:50 +0200)
2008-05-27  Gary Dismukes  <dismukes@adacore.com>

* sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
to the known type entity E, rather than setting it to Any_Type. Fixes
possible blowup in function Base_Init_Proc, as called from Freeze_Entity
for objects whose type had an illegal constraint.

From-SVN: r135979

gcc/ada/sem_ch3.adb

index a3f036ade2527235992c906c3b2a689b86fe6e28..9fb7e944b2b867d903531b5ea5f5b32a63c224ac 100644 (file)
@@ -10186,7 +10186,9 @@ package body Sem_Ch3 is
             Set_Ekind (Def_Id, Subtype_Kind (Ekind (T)));
          end if;
 
-         Set_Etype (Def_Id, Any_Type);
+         --  Set Etype to the known type, to reduce chances of cascaded errors
+
+         Set_Etype (Def_Id, E);
          Set_Error_Posted (Def_Id);
       end Fixup_Bad_Constraint;