aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gnat.dg/opt19.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gnat.dg/opt19.adb')
-rw-r--r--gcc-4.9/gcc/testsuite/gnat.dg/opt19.adb27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gnat.dg/opt19.adb b/gcc-4.9/gcc/testsuite/gnat.dg/opt19.adb
new file mode 100644
index 000000000..5619da122
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gnat.dg/opt19.adb
@@ -0,0 +1,27 @@
+-- { dg-do compile }
+-- { dg-options "-O" }
+
+procedure Opt19 is
+
+ type Enum is (One, Two);
+
+ type Vector_T is array (Enum) of Integer;
+
+ Zero_Vector : constant Vector_T := (Enum => 0);
+
+ type T is record
+ Vector : Vector_T;
+ end record;
+
+ procedure Nested (Value : in out T; E : Enum; B : out Boolean) is
+ I : Integer renames Value.Vector(E);
+ begin
+ B := I /= 0;
+ end;
+
+ Obj : T := (Vector => Zero_Vector);
+ B : Boolean;
+
+begin
+ Nested (Obj, One, B);
+end;