This is a regression present on mainline and 4.7 branch, in the form of an 
assertion failure.  The check that an RACW type is acceptable an actual for a 
formal type to which a pragma Remote_Access applies need not be performed on a 
defaulted formal type appearing in the internal instantiation of a formal 
package.

Tested on x86-64/Linux, applied on the mainline and 4.7 branch.


2012-12-21  Ed Schonberg  <schonb...@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.


-- 
Eric Botcazou
Index: sem_ch12.adb
===================================================================
--- sem_ch12.adb	(revision 194669)
+++ sem_ch12.adb	(working copy)
@@ -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 :=

Reply via email to