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;