package pak1 is type T1(<>) is tagged limited private; private type T1(D: integer) is tagged limited null record; end pak1;
package pak1.pak3 is type T3 is new pak1.T1 with null record; -- legal, but rejected x2: T3 := (pak1.T1 with null record); -- legal, but rejected end pak1.pak3; RM 3.7(26) states: "A type declared without a discriminant part has no discriminants, unless it is a derived type; if derived, such a type has the same sort of discriminants (known, unknown, or none) as its parent (or ancestor) type." Therefore, the declaration of T3 is legal and T3 has unknown discriminants. -- Summary: Legal program rejected, RM 3.7(26) Product: gcc Version: 4.1.0 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=34508