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
This commit is contained in:
Ed Schonberg 2014-08-01 13:35:22 +00:00 committed by Arnaud Charlet
parent 10671e7aff
commit ecda544d41
2 changed files with 14 additions and 1 deletions

View File

@ -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

View File

@ -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;