From c0def2adcc412435120f1b4e5cb7749aa0491bec Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Wed, 5 Dec 2001 01:43:31 +0000 Subject: [PATCH] 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 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/sem_ch7.adb | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ea362f11731..8aa8b167035 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2001-12-04 Ed Schonberg + + * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before + processing discriminants to diagnose illegal default values. + 2001-12-04 Ed Schonberg * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb index c1b0521b38a..74d70d1fed8 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); -- 2.30.2