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