If an incomplete_type_declaration includes the reserved word tagged, then a full_type_declaration that completes it shall declare a tagged type.
The error for T3 is detected, but not T1 or T2. package pak1 is type T1 is tagged; type T2 is tagged; type T3 is tagged; protected type T1 is end T1; task type T2; type T3 is null record; end pak1; gnatmake -gnat05 pak1 gcc-4.1 -c -gnat05 pak1.ads pak1.ads:4:09: full declaration of type "T3" defined at line 7 must be tagged gnatmake -gnat05 pak1 gcc-4.3 -c -gnat05 pak1.ads pak1.ads:4:09: full declaration of type "T3" defined at line 7 must be tagged -- Summary: Illegal program not detected, RM 3.10.1(4/2) Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ludovic at ludovic-brenta dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35792