From 01c3cf4d51cfe3c30cb6e04c895f1c1be0fcd837 Mon Sep 17 00:00:00 2001 From: Eric Botcazou <ebotcazou@adacore.com> Date: Thu, 24 Sep 2009 11:52:05 +0000 Subject: [PATCH] * gnat.dg/nested_proc.adb: New test. From-SVN: r152115 --- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gnat.dg/nested_proc.adb | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 gcc/testsuite/gnat.dg/nested_proc.adb diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0e92d05..fbce64f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-09-24 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/nested_proc.adb: New test. + 2009-09-24 Jakub Jelinek <jakub@redhat.com> * testsuite/gcc.target/i386/pr12329.c: Adjust. diff --git a/gcc/testsuite/gnat.dg/nested_proc.adb b/gcc/testsuite/gnat.dg/nested_proc.adb new file mode 100644 index 0000000..144533c --- /dev/null +++ b/gcc/testsuite/gnat.dg/nested_proc.adb @@ -0,0 +1,33 @@ +-- { dg-do run } +-- Test that a static link is correctly passed to a subprogram which is +-- indirectly called through an aggregate. + +procedure Nested_Proc is + + I : Integer := 0; + + procedure P1 (X : Integer) is + begin + I := X; + end; + + type Func_Ptr is access procedure (X : Integer); + + type Arr is array (1..64) of Integer; + + type Rec is record + F : Func_Ptr; + A : Arr; + end record; + + procedure P2 (R : Rec) is + begin + R.F (1); + end; + +begin + P2 ((F => P1'Access, A => (others => 0))); + if I /= 1 then + raise Program_Error; + end if; +end; -- libgit2 0.26.0