diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-05-21 12:48:37 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-05-21 12:48:37 +0200 |
commit | 2735b82d096137ab53517510fd3669e60a663915 (patch) | |
tree | 2b61dc53cf097856ce13cbea844e143b7a52001a /gcc/ada/sem_util.adb | |
parent | 149604e46a31c3f1a22194e61ba3a0f01903de03 (diff) | |
download | gcc-2735b82d096137ab53517510fd3669e60a663915.zip gcc-2735b82d096137ab53517510fd3669e60a663915.tar.gz gcc-2735b82d096137ab53517510fd3669e60a663915.tar.bz2 |
[multiple changes]
2014-05-21 Robert Dewar <dewar@adacore.com>
* einfo.ads: Minor reformatting.
* ceinfo.adb: Deal with slight format change of einfo.ads.
2014-05-21 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Part_Of): Further work on the proper
implementation of the SPARK 2014 rule concerning private child
units (LRM 7.2.6).
2014-05-21 Vincent Celier <celier@adacore.com>
* makeusg.adb: Add switch -d to usage.
2014-05-21 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Find_Actual): If an actual that is the prefix
of an enclosing prefixed call has been rewritten, use Nkind
and Sloc to identify the corresponding formal, when handling
deferred references.
2014-05-21 Robert Dewar <dewar@adacore.com>
* debug.adb: Document -gnatd.z switch.
* sem_eval.adb (Why_Non_Static): Test -gnatd.z switch.
From-SVN: r210689
Diffstat (limited to 'gcc/ada/sem_util.adb')
-rw-r--r-- | gcc/ada/sem_util.adb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 6894a3a..a981960 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -5518,6 +5518,16 @@ package body Sem_Util is while Present (Formal) and then Present (Actual) loop if Actual = N then return; + + -- An actual that is the prefix in a prefixed call may have + -- been rewritten in the call, after the deferred reference + -- was collected. Check if sloc and kinds match. + + elsif Sloc (Actual) = Sloc (N) + and then Nkind (Actual) = Nkind (N) + then + return; + else Actual := Next_Actual (Actual); Formal := Next_Formal (Formal); |