aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads17
-rw-r--r--gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads10
-rw-r--r--gcc/testsuite/gnat.dg/specs/generic_inst2.ads11
3 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads b/gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads
new file mode 100644
index 0000000..18e212b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads
@@ -0,0 +1,17 @@
+generic
+package Generic_Inst2.Child1 is
+
+ function Get_Custom return Custom_Type;
+
+private
+
+ type Dummy is null record;
+
+ Placeholder : constant Dummy := (null record);
+
+ -- This type conversion fails (though only when
+ -- instantiated in the other package)
+ function Get_Custom return Custom_Type is
+ (Custom_Type(Placeholder'Address));
+
+end Generic_Inst2.Child1;
diff --git a/gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads b/gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads
new file mode 100644
index 0000000..3bb5b0a
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads
@@ -0,0 +1,10 @@
+-- { dg-do compile }
+
+with Generic_Inst2.Child1;
+
+generic
+package Generic_Inst2.Child2 is
+
+ package Second is new Generic_Inst2.Child1;
+
+end Generic_Inst2.Child2;
diff --git a/gcc/testsuite/gnat.dg/specs/generic_inst2.ads b/gcc/testsuite/gnat.dg/specs/generic_inst2.ads
new file mode 100644
index 0000000..0a74e36
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/generic_inst2.ads
@@ -0,0 +1,11 @@
+private with System;
+
+package Generic_Inst2 is
+
+ type Custom_Type is private;
+
+private
+
+ type Custom_Type is new System.Address;
+
+end Generic_Inst2;