| -- { dg-do run } |
| |
| procedure iprot_test is |
| type T1 is tagged null record; |
| package PP is |
| protected type P is |
| procedure S (X : T1'Class); |
| private |
| R2 : access T1'Class; |
| end P; |
| end PP; |
| package body PP is |
| protected body P is |
| procedure S (X : T1'Class) is |
| begin |
| R2 := new T1'Class'(X); |
| if R2 /= null then |
| null; |
| end if; |
| end S; |
| end P; |
| end PP; |
| use PP; |
| Prot : P; |
| procedure Proc is |
| type T2 is new T1 with null record; |
| X2 : T2; |
| begin |
| Prot.S (X2); |
| end Proc; |
| begin |
| Proc; |
| exception |
| when Program_Error => null; |
| end iprot_test; |