aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gnat.dg/aggr21.adb14
-rw-r--r--gcc/testsuite/gnat.dg/aggr21_pkg.adb8
-rw-r--r--gcc/testsuite/gnat.dg/aggr21_pkg.ads11
4 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 82d0e7a..290af4e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-11-12 Tristan Gingold <gingold@adacore.com>
+
+ * gnat.dg/aggr21.adb: New test.
+ * gnat.dg/aggr21_pkg.ad[sb]: New helper.
+
2013-11-12 Jeff Law <law@redhat.com>
* gcc.dg/tree-ssa/isolate-1.c: Update expected output.
diff --git a/gcc/testsuite/gnat.dg/aggr21.adb b/gcc/testsuite/gnat.dg/aggr21.adb
new file mode 100644
index 0000000..3dd3327
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/aggr21.adb
@@ -0,0 +1,14 @@
+-- { dg-do run }
+
+with Aggr21_Pkg; use Aggr21_Pkg;
+
+procedure Aggr21 is
+ V : Rec;
+begin
+ V.A := 12;
+ V.S (1 .. 10) := "Hello init";
+ V.N := 123;
+ Init (V);
+ -- Probably not reliable, but the compiler is supposed not to modify V.S
+ pragma Assert (V.s (1 .. 5) = "Hello");
+end;
diff --git a/gcc/testsuite/gnat.dg/aggr21_pkg.adb b/gcc/testsuite/gnat.dg/aggr21_pkg.adb
new file mode 100644
index 0000000..5cdd089
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/aggr21_pkg.adb
@@ -0,0 +1,8 @@
+package body Aggr21_Pkg is
+
+ procedure Init (R : out Rec) is
+ begin
+ R := (A => 5, S => <>, N => 7);
+ end;
+
+end Aggr21_Pkg;
diff --git a/gcc/testsuite/gnat.dg/aggr21_pkg.ads b/gcc/testsuite/gnat.dg/aggr21_pkg.ads
new file mode 100644
index 0000000..3a14963
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/aggr21_pkg.ads
@@ -0,0 +1,11 @@
+package Aggr21_Pkg is
+
+ type Rec is record
+ A : Integer;
+ S : String (1 .. 120);
+ N : Natural;
+ end record;
+
+ procedure Init (R : out Rec);
+
+end Aggr21_Pkg;