]> git.ipfire.org Git - thirdparty/gcc.git/commit
sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a requeue statemen...
authorHristian Kirtchev <kirtchev@adacore.com>
Thu, 13 Dec 2007 10:32:01 +0000 (11:32 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 13 Dec 2007 10:32:01 +0000 (11:32 +0100)
commit3ccd94107b2bf56d54d62cefe515fd37584b1b25
tree9fc1b655ad4e6c49cac646cfcea848eb453c8ea8
parent294ccb21c4d993c4fd9f4220e0ee8513a1666894
sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a requeue statement is dispatching.

2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
requeue statement is dispatching. Do not emit an error when the name is
not an entry and the context is a dispatching select. Add code to
perform subtype conformance between the formals of the current entry
and those of the target interface primitive.
(Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
Timed_Entry_Call): Analyze the triggering statement as the first step of
the processing. If this is a dispatching select, postpone the analysis
of all select statements until the Expander transforms the select. This
approach avoids generating duplicate identifiers after the Expander has
replicated some of the select statements. In case the Expander is
disabled, perform regular analysis.
(Check_Triggering_Statement): New routine.
(Analyze_Requeue): Exclude any interpretations that are not entries when
checking overloaded names in a requeue. Also test type conformance for
matching interpretations rather than requiring subtype conformance at
that point to conform with the RM's resolution rule for requeues.

From-SVN: r130855
gcc/ada/sem_ch9.adb