PR ada/53737
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Dec 2012 22:31:42 +0000 (22:31 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Dec 2012 22:31:42 +0000 (22:31 +0000)
* sem_ch12.adb (Analyze_Associations): Do not check the legality of
actuals for RACW types if this is an internal instantiation for a formal
package with defaulted parameters.

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

gcc/ada/ChangeLog
gcc/ada/sem_ch12.adb

index f18c146..2bb659a 100644 (file)
@@ -1,3 +1,10 @@
+2012-12-21  Ed Schonberg  <schonberg@adacore.com>
+
+       PR ada/53737
+       * sem_ch12.adb (Analyze_Associations): Do not check the legality of
+       actuals for RACW types if this is an internal instantiation for a formal
+       package with defaulted parameters.
+
 2012-12-21  Eric Botcazou  <ebotcazou@adacore.com>
 
        * adaint.c: Move directive around.
index 60edce3..10718c4 100644 (file)
@@ -1448,10 +1448,15 @@ package body Sem_Ch12 is
                   --  defined aspect/pragma Remote_Access_Type. In that case
                   --  the actual must be remote as well.
 
+                  --  If the current instantiation is the construction of a
+                  --  local copy for a formal package the actuals may be
+                  --  defaulted, and there is no matching actual to check.
+
                   if Nkind (Analyzed_Formal) = N_Formal_Type_Declaration
                     and then
                       Nkind (Formal_Type_Definition (Analyzed_Formal)) =
                                             N_Access_To_Object_Definition
+                     and then Present (Match)
                   then
                      declare
                         Formal_Ent : constant Entity_Id :=