diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/iprot_test.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/iprot_test.adb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/iprot_test.adb b/gcc/testsuite/gnat.dg/iprot_test.adb new file mode 100644 index 000000000..17c202155 --- /dev/null +++ b/gcc/testsuite/gnat.dg/iprot_test.adb @@ -0,0 +1,35 @@ +-- { 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; |