diff options
| author | Eric Botcazou <ebotcazou@adacore.com> | 2025-10-28 10:13:35 +0100 |
|---|---|---|
| committer | Eric Botcazou <ebotcazou@adacore.com> | 2025-10-28 10:16:01 +0100 |
| commit | 84d9fde22d5e6f0d62d76cf3a6f8c6d973ff2442 (patch) | |
| tree | 78d5a7cacb51cbd4fc24d2cc7d78e63a3698df07 /contrib/gcc-changelog/git_commit.py | |
| parent | 7d9296d0dfbe878598250d176e74b5732b811cff (diff) | |
| download | gcc-84d9fde22d5e6f0d62d76cf3a6f8c6d973ff2442.zip gcc-84d9fde22d5e6f0d62d76cf3a6f8c6d973ff2442.tar.gz gcc-84d9fde22d5e6f0d62d76cf3a6f8c6d973ff2442.tar.bz2 | |
Ada: Fix instantiation failure for package with formal package parameters
The problem occurs for a generic package with a formal package parameter
that contains a nested generic package used in the instantiation of another
generic package with two formal package parameters.
It turns out that the mapping between formals and actuals for the latter two
formal package parameters done by Map_Formal_Package_Entities is blocked by
the presence of the first formal package parameter, more precisely by the
special name built for the formal in the parent of a child unit. The fix
is just to set the Is_Internal flag on this special name.
gcc/ada/
PR ada/59234
* sem_ch12.adb (Analyze_Formal_Package_Declaration): Mark the
special name built for the formal in the parent of a child unit
as internal.
gcc/testsuite/
* gnat.dg/specs/generic_inst5.ads: New test.
* gnat.dg/specs/generic_inst5_pkg1.ads: New helper.
* gnat.dg/specs/generic_inst5_pkg2.ads: Likewise.
Diffstat (limited to 'contrib/gcc-changelog/git_commit.py')
0 files changed, 0 insertions, 0 deletions
