procedure Test_12_5_1 is
generic
type T is private; -- should be type T (<>) is private;
package P is
end P;
type R (B : Boolean := True) is record
case B is
when True => Component : Integer;
when False => null;
end case;
end record;
package PP is new P (T => R); -- line 14
begin
null;
end Test_12_5_1;
In Ada 95, indefinite types no longer match generic formal types that don't have
a discriminant_part.
Expected output is along the lines of:
test_12_5_1.adb:14:29: actual type cannot be indefinite
test_12_5_1.adb:14:29: consider adding (<>) to the formal type declaration
The compiler says nothing.
Am I mistaken in believing that the type R is indefinite?
--
Summary: Illegal program not detected, RM 12.5.1(15, 28)
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ludovic dot brenta at insalien dot org
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23208