https://gcc.gnu.org/g:19e7179f654e4d6192a8460425c8ac69221d8a7b

commit r13-9106-g19e7179f654e4d6192a8460425c8ac69221d8a7b
Author: Eric Botcazou <ebotca...@adacore.com>
Date:   Mon Oct 14 11:57:57 2024 +0200

    Add regression test
    
    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.

Diff:
---
 gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads | 17 +++++++++++++++++
 gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads | 10 ++++++++++
 gcc/testsuite/gnat.dg/specs/generic_inst2.ads        | 11 +++++++++++
 3 files changed, 38 insertions(+)

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 000000000000..18e212b2e58c
--- /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 000000000000..3bb5b0aca107
--- /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 000000000000..0a74e36273bd
--- /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;

Reply via email to