| -- { dg-do compile } | |
| -- { dg-options "-O" } | |
| package Opt4 is | |
| type Rec (D : Boolean := False) is record | |
| case D is | |
| when False => null; | |
| when True => I : Integer; | |
| end case; | |
| end record; | |
| Null_Rec : constant Rec := (D => False); | |
| type I1 is limited interface; | |
| type I2 is limited interface; | |
| function Func (Data : I2) return Rec is abstract; | |
| type Ext is limited new I1 and I2 with null record; | |
| overriding function Func (Data : Ext) return Rec is (Null_Rec); | |
| end Opt4; |