summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r--gcc/testsuite/gnat.dg/assert.ads5
-rw-r--r--gcc/testsuite/gnat.dg/controlled_record.adb15
-rw-r--r--gcc/testsuite/gnat.dg/controlled_record.ads16
3 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/assert.ads b/gcc/testsuite/gnat.dg/assert.ads
new file mode 100644
index 00000000000..81a912a8ad2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/assert.ads
@@ -0,0 +1,5 @@
+package Assert is
+
+ procedure Assert (Condition : Boolean);
+
+end Assert;
diff --git a/gcc/testsuite/gnat.dg/controlled_record.adb b/gcc/testsuite/gnat.dg/controlled_record.adb
new file mode 100644
index 00000000000..89a9380b9d2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/controlled_record.adb
@@ -0,0 +1,15 @@
+-- { dg-do compile }
+-- { dg-options "-O2" }
+
+with Ada.Text_IO; use Ada.Text_IO;
+with Assert;
+
+package body Controlled_Record is
+
+ procedure Assert_Invariants (PA : Point_T) is
+ PB : Point_T;
+ begin
+ Assert.Assert (PB.Pos = PA.Pos);
+ end;
+
+end Controlled_Record;
diff --git a/gcc/testsuite/gnat.dg/controlled_record.ads b/gcc/testsuite/gnat.dg/controlled_record.ads
new file mode 100644
index 00000000000..71a57372c96
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/controlled_record.ads
@@ -0,0 +1,16 @@
+with Ada.Finalization;
+
+package Controlled_Record is
+
+ type Point_T is limited private;
+ procedure Assert_Invariants (PA : Point_T);
+
+private
+
+ type Coords_T is array (1 .. 2) of Natural;
+
+ type Point_T is new Ada.Finalization.Controlled with record
+ Pos : Coords_T := (0, 0);
+ end record;
+
+end Controlled_Record;