diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r-- | gcc/testsuite/gnat.dg/assert.ads | 5 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled_record.adb | 15 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/controlled_record.ads | 16 |
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; |