sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to become local to...
authorJavier Miranda <miranda@adacore.com>
Mon, 5 Sep 2005 07:58:52 +0000 (09:58 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 5 Sep 2005 07:58:52 +0000 (09:58 +0200)
commitf81856470301fd6d3d353e4f872244b4ab7cc2ba
treeea05b1ec4808816d48656a0904fecb317ef753c4
parent0835f1d7fa977a52e01042f657ed3c988933f61f
sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to become local to the whole package.

2005-09-01  Javier Miranda  <miranda@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
become local to the whole package.
(Install_Limited_Withed_Unit): Instead of unchaining real entities if
the package was already analyzed the new algorithm "replaces" the
real entities by the shadow ones. This is required to ensure that
the order of these entities in the homonym chains does not change;
otherwise we can have undefined references at linking time because
in case of conflicts the external name of the entities will have
a suffix that depends on the order of the entities in the chain.
(Remove_Limited_With_Clause): Complementary code that completes the
new algorithm and replaces the shadow entities by the real ones.
(Install_Limited_Withed_Unit): When unchaining entities before the
installation of the shadow entities, only regular entities of the
public part must be taken into account. This is required to
keep this routine in synch with the work done by Remove_Limited_
With_Clause
(Install_Limited_With_Clause): Introduce implicit limited_with_clause
even if unit is analyzed, because the analysis of the unit is
idempotent in any case, and the limited view of the unit may have to
be installed for proper visibility.
(Expand_Limited_With_Clause): Even if the unit in the implicit
with_clause has been analyzed already, a limited view of the package
must be built for the current context, if it does not exist yet.

From-SVN: r103878
gcc/ada/sem_ch10.adb