2014-08-01 Ed Schonberg <schonberg@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2014 13:35:22 +0000 (13:35 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2014 13:35:22 +0000 (13:35 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213461 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/sem_res.adb

index f829f84..e4a89b1 100644 (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
index 034ca58..92c8bfa 100644 (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;