[multiple changes]

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
This commit is contained in:
Arnaud Charlet 2013-07-05 11:43:13 +02:00
parent 207156e4f8
commit fd3fa68fbb
3 changed files with 26 additions and 2 deletions

View File

@ -1,3 +1,13 @@
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.

View File

@ -2095,7 +2095,13 @@ package body Par_SCO is
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;

View File

@ -5220,7 +5220,15 @@ package body Sem_Ch12 is
-- 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