rt_gccstream/gcc/testsuite/gnat.dg/discr20.ads

32 lines
605 B
Ada

package Discr20 is
Size : Integer;
type Name is new String (1..Size);
type Rec is record
It : Name;
end record;
type Danger is (This, That);
type def (X : Danger := This) is record
case X is
when This => It : Rec;
when That => null;
end case;
end record;
type Switch is (On, Off);
type Wrapper (Disc : Switch := On) is private;
function Get (X : Wrapper) return Def;
private
type Wrapper (Disc : Switch := On) is record
Case Disc is
when On => It : Def;
when Off => null;
end case;
end record;
end Discr20;