]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Add regression test
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 14 Oct 2024 09:57:57 +0000 (11:57 +0200)
committerEric Botcazou <ebotcazou@adacore.com>
Mon, 14 Oct 2024 09:59:30 +0000 (11:59 +0200)
gcc/testsuite/
PR ada/114593
* gnat.dg/specs/generic_inst2-child2.ads: New test.
* gnat.dg/specs/generic_inst2.ads: New helper.
* gnat.dg/specs/generic_inst2-child1.ads: Likewise.

gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/specs/generic_inst2.ads [new file with mode: 0644]

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 (file)
index 0000000..18e212b
--- /dev/null
@@ -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 (file)
index 0000000..3bb5b0a
--- /dev/null
@@ -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 (file)
index 0000000..0a74e36
--- /dev/null
@@ -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;