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
This commit is contained in:
parent
0835f1d7fa
commit
f818564703