diff options
author | Ed Schonberg <schonber@gnat.com> | 2001-12-05 01:43:31 +0000 |
---|---|---|
committer | Geert Bosch <bosch@gcc.gnu.org> | 2001-12-05 02:43:31 +0100 |
commit | c0def2adcc412435120f1b4e5cb7749aa0491bec (patch) | |
tree | ec4cdad4a6c00dd66fd4145cb13b57eb9462931d /gcc/ada | |
parent | 0626ef8add9823d3f8714e3a00d6372ba4f4ff4a (diff) | |
download | gcc-c0def2adcc412435120f1b4e5cb7749aa0491bec.zip gcc-c0def2adcc412435120f1b4e5cb7749aa0491bec.tar.gz gcc-c0def2adcc412435120f1b4e5cb7749aa0491bec.tar.bz2 |
sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before processing discriminants to diagnose illegal...
* sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
processing discriminants to diagnose illegal default values.
From-SVN: r47645
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/sem_ch7.adb | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ea362f1..8aa8b16 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2001-12-04 Ed Schonberg <schonber@gnat.com> + * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before + processing discriminants to diagnose illegal default values. + +2001-12-04 Ed Schonberg <schonber@gnat.com> + * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide access discriminant within a type extension that constrains its parent discriminants. diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb index c1b0521..74d70d1 100644 --- a/gcc/ada/sem_ch7.adb +++ b/gcc/ada/sem_ch7.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- $Revision: 1.335 $ +-- $Revision$ -- -- -- Copyright (C) 1992-2001, Free Software Foundation, Inc. -- -- -- @@ -1308,6 +1308,11 @@ package body Sem_Ch7 is No (Discriminant_Specifications (N)) and then not Unknown_Discriminants_Present (N)); + -- Set tagged flag before processing discriminants, to catch + -- illegal usage. + + Set_Is_Tagged_Type (Id, Tagged_Present (Def)); + Set_Discriminant_Constraint (Id, No_Elist); Set_Girder_Constraint (Id, No_Elist); @@ -1323,7 +1328,6 @@ package body Sem_Ch7 is Set_Private_Dependents (Id, New_Elmt_List); if Tagged_Present (Def) then - Set_Is_Tagged_Type (Id, True); Set_Ekind (Id, E_Record_Type_With_Private); Make_Class_Wide_Type (Id); Set_Primitive_Operations (Id, New_Elmt_List); |