diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/boolean_conv.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/boolean_conv.adb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/boolean_conv.adb b/gcc/testsuite/gnat.dg/boolean_conv.adb new file mode 100644 index 000000000..7a9b4f3e8 --- /dev/null +++ b/gcc/testsuite/gnat.dg/boolean_conv.adb @@ -0,0 +1,34 @@ +-- { dg-do run } + +with System; use System; + +procedure Boolean_Conv is + subtype B1 is Boolean; + subtype B2 is Boolean; + A0, A1, A2 : Address; + + B : aliased B1; + + procedure P2 (X2 : access B2) is + begin + A2 := X2.all'Address; + end P2; + + procedure P1 (X1 : access B1) is + begin + A1 := X1.all'Address; + P2 (B2 (X1.all)'Unrestricted_Access); + end P1; + +begin + A0 := B'Address; + P1 (B'Access); + + if A1 /= A0 then + raise Program_Error; + end if; + + if A2 /= A0 then + raise Program_Error; + end if; +end; |