2013-07-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Check_Formal_Package_Instance): Handle properly
a formal subprogram that was defaulted in the formal package.
2013-07-05 Thomas Quinot <quinot@adacore.com>
* par_sco.adb (Traverse_Declarations_Or_Statements): Ignore
N_Implicit_Label_Declaration nodes.
From-SVN: r200694
+2013-07-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Check_Formal_Package_Instance): Handle properly
+ a formal subprogram that was defaulted in the formal package.
+
+2013-07-05 Thomas Quinot <quinot@adacore.com>
+
+ * par_sco.adb (Traverse_Declarations_Or_Statements): Ignore
+ N_Implicit_Label_Declaration nodes.
+
2013-07-05 Robert Dewar <dewar@adacore.com>
* a-cfhase.adb, sem_prag.adb, a-cfhama.adb: Minor reformatting.
if Is_Non_Empty_List (L) then
N := First (L);
while Present (N) loop
- Traverse_One (N);
+
+ -- Note: For separate bodies, we see the tree after Par.Labl has
+ -- introduced implicit labels, so we need to ignore those nodes.
+
+ if Nkind (N) /= N_Implicit_Label_Declaration then
+ Traverse_One (N);
+ end if;
Next (N);
end loop;
-- If the formal entity comes from a formal declaration, it was
-- defaulted in the formal package, and no check is needed on it.
- elsif Nkind (Parent (E2)) = N_Formal_Object_Declaration then
+ elsif Nkind (Parent (E2)) = N_Formal_Object_Declaration then
+ goto Next_E;
+
+ -- Ditto for defaulted formal subprograms.
+
+ elsif Is_Overloadable (E1)
+ and then Nkind (Unit_Declaration_Node (E2))
+ in N_Formal_Subprogram_Declaration
+ then
goto Next_E;
elsif Is_Type (E1) then