diff options
author | Steve Baird <baird@adacore.com> | 2023-11-03 16:00:20 -0700 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-11-30 11:12:47 +0100 |
commit | cff5ecd412493784d88a963da248ca9a1b0a9f64 (patch) | |
tree | fb3ca3e5de81bb2c10ded19c1fc8014bb0bdbbf1 /gcc/ada/inline.adb | |
parent | 769e5925f6a076436981ba64335979b19106f828 (diff) | |
download | gcc-cff5ecd412493784d88a963da248ca9a1b0a9f64.zip gcc-cff5ecd412493784d88a963da248ca9a1b0a9f64.tar.gz gcc-cff5ecd412493784d88a963da248ca9a1b0a9f64.tar.bz2 |
ada: Name resolution in expanded instances
In building the tree for an instance of a generic, expansion sets
entity fields on names that refer to things declared outside of the
instance, but leaves the entity field unset on names that should end
up referring to things declared within the instance. These will instead be
set by analysis - the idea is that if a name resolves a certain way in the
generic, then we should get corresponding results if we resolve the
corresponding name in an instance. For this to work, we have to prevent
unrelated declarations that happen to be visible at the point of the
instantiation from participating in resolution. Add code to filter out such
unwanted name resolution candidates.
gcc/ada/
* sem_ch8.adb (Find_Direct_Name): In the case of a resolving a
name that occurs within an instantiation, add code to detect and
filter out unwanted candidate resolutions. The filtering is
performed via a call to Remove_Interp.
Diffstat (limited to 'gcc/ada/inline.adb')
0 files changed, 0 insertions, 0 deletions