diff options
author | Ed Schonberg <schonberg@adacore.com> | 2014-08-01 13:35:22 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-08-01 15:35:22 +0200 |
commit | ecda544d41f26433d80a0632c09dec07fd2a8dfd (patch) | |
tree | 3360a0e17b2a6d4ffedf6b663736d7e8701f53fe /gcc/ada | |
parent | 10671e7affbf700ea0b10baa77901f0cf2b8e9ad (diff) | |
download | gcc-ecda544d41f26433d80a0632c09dec07fd2a8dfd.zip gcc-ecda544d41f26433d80a0632c09dec07fd2a8dfd.tar.gz gcc-ecda544d41f26433d80a0632c09dec07fd2a8dfd.tar.bz2 |
sem_res.adb (Resolve_Entry_Call): When an entry has preconditions...
2014-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Entry_Call): When an entry has
preconditions, the entry call is wrapped in a procedure call
that incorporates the precondition checks. To prevent a double
expansion, with possible duplication of extra formals, that
procedure call must only be pre-analyzed and resolved. Expansion
takes place upon return to the caller Resolve_Call.
From-SVN: r213461
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/ada/sem_res.adb | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index f829f84..e4a89b1 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,12 @@ +2014-08-01 Ed Schonberg <schonberg@adacore.com> + + * sem_res.adb (Resolve_Entry_Call): When an entry has + preconditions, the entry call is wrapped in a procedure call + that incorporates the precondition checks. To prevent a double + expansion, with possible duplication of extra formals, that + procedure call must only be pre-analyzed and resolved. Expansion + takes place upon return to the caller Resolve_Call. + 2014-08-01 Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Resolve_Call): Do not perform diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index 034ca58..92c8bfa 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -7176,7 +7176,11 @@ package body Sem_Res is New_Occurrence_Of (PPC_Wrapper (Nam), Loc), Parameter_Associations => New_Actuals); Rewrite (N, New_Call); - Analyze_And_Resolve (N); + + -- Preanalyze and resolve new call. Current procedure is called + -- from Resolve_Call, after which expansion will take place. + + Preanalyze_And_Resolve (N); return; end; end if; |