aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2013-11-29 12:16:07 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2013-11-29 12:16:07 +0000
commit08c5a7c685a97e0870fe278a1113523763b7af5f (patch)
tree9fea8532a275e6ea4031089526840824c4147c1a /gcc
parent089d12274633f9446335b3a181357cbc0b71b96e (diff)
downloadgcc-08c5a7c685a97e0870fe278a1113523763b7af5f.zip
gcc-08c5a7c685a97e0870fe278a1113523763b7af5f.tar.gz
gcc-08c5a7c685a97e0870fe278a1113523763b7af5f.tar.bz2
* gnat.dg/opt29.ad[sb]: New test.
From-SVN: r205523
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/opt29.adb13
-rw-r--r--gcc/testsuite/gnat.dg/opt29.ads28
3 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 411d5e9..713980f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/opt29.ad[sb]: New test.
+
2013-11-29 Richard Biener <rguenther@suse.de>
PR middle-end/59338
diff --git a/gcc/testsuite/gnat.dg/opt29.adb b/gcc/testsuite/gnat.dg/opt29.adb
new file mode 100644
index 0000000..64f2baef
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/opt29.adb
@@ -0,0 +1,13 @@
+-- { dg-do compile }
+-- { dg-options "-O" }
+
+package body Opt29 is
+
+ procedure Proc (T : Rec) is
+ begin
+ if Derived2 (T.F2.all).Id = T.F1.Id then
+ raise Program_Error;
+ end if;
+ end;
+
+end Opt29;
diff --git a/gcc/testsuite/gnat.dg/opt29.ads b/gcc/testsuite/gnat.dg/opt29.ads
new file mode 100644
index 0000000..c809b1c
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/opt29.ads
@@ -0,0 +1,28 @@
+package Opt29 is
+
+ type Word is mod 2**16;
+
+ type PID is record
+ W1, W2: Word;
+ end record;
+
+ type Root1 is tagged record
+ Id: PID;
+ end record;
+ type Root1_Ptr is access all Root1'Class;
+
+ type Root2 is tagged null record;
+ type Root2_Ptr is access all Root2'class;
+
+ type Derived2 is new Root2 with record
+ Id: PID;
+ end record;
+
+ type Rec is record
+ F1: Root1_Ptr;
+ F2: Root2_Ptr;
+ end record;
+
+ procedure Proc (T : Rec);
+
+end Opt29;