sem_ch10.adb (Check_Redundant_Withs): New procedure in Analyze_Compilation_Unit.
authorHristian Kirtchev <kirtchev@adacore.com>
Wed, 15 Feb 2006 09:44:09 +0000 (10:44 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 15 Feb 2006 09:44:09 +0000 (10:44 +0100)
commit561d9139e3ba1195a41f7fa0c55352dec96a0991
tree31e96b20adcc6c35c222fe86b650ca0862a63abc
parentb8dc622e9fc08c74a749eb81503f795363625d12
sem_ch10.adb (Check_Redundant_Withs): New procedure in Analyze_Compilation_Unit.

2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* sem_ch10.adb (Check_Redundant_Withs): New procedure in
Analyze_Compilation_Unit.
Detect and warn on redundant with clauses detected in a package spec
and/or body when -gnatwr is used.
(Analyze_Context): Analyze config pragmas before other items
(Install_Context_Items): Don't analyze config pragmas here
(Install_Limited_Withed_Unit): Set limited entity of package in
with_clause so that cross-reference information or warning messages on
unused packages can be properly generated
(Is_Visible_Through_Renamings): Return false if the limited_with_clause
has Error_Posted set. Prevent infinite loops in illegal programs.
(Check_Private_Child_Unit): Move test for a nonprivate with clause down
to the point of the error test requiring the current unit to be private.
This ensures that private with clauses are not exempted from the basic
checking for being a descendant of the same library unit parent as a
withed private descendant unit.
(Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
handle private with clauses properly, as well as to account for cases
where the withed unit is a public descendant of a private ancestor
(in which case the current unit must be a descendant of the private
ancestor's parent). The spec comments were updated accordingly. Also,
the old error message in this subprogram was replaced with error
messages that mirror the errors tested and reported by
Check_Private_Child_Unit.
Parameter and variable names improved for readability.
(Install_Limited_Context_Clauses): Remove test for a withed unit being
private as the precondition for calling
Check_Private_Limited_Withed_Unit since that subprogram has been
revised to test public units as well as private units.

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