Commit f9c0d38c by Javier Miranda Committed by Arnaud Charlet

sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a generated interface thunk.

2007-08-14  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
	generated interface thunk.

From-SVN: r127459
parent d118a43e
...@@ -593,8 +593,9 @@ package body Sem_Disp is ...@@ -593,8 +593,9 @@ package body Sem_Disp is
Typ := Etype (E); Typ := Etype (E);
end if; end if;
if not Is_Class_Wide_Type (Typ) if Comes_From_Source (Subp)
and then Is_Interface (Typ) and then Is_Interface (Typ)
and then not Is_Class_Wide_Type (Typ)
and then not Is_Derived_Type (Typ) and then not Is_Derived_Type (Typ)
and then not Is_Generic_Type (Typ) and then not Is_Generic_Type (Typ)
and then not In_Instance and then not In_Instance
...@@ -1211,7 +1212,11 @@ package body Sem_Disp is ...@@ -1211,7 +1212,11 @@ package body Sem_Disp is
function Is_Dynamically_Tagged (N : Node_Id) return Boolean is function Is_Dynamically_Tagged (N : Node_Id) return Boolean is
begin begin
return Find_Controlling_Arg (N) /= Empty; if Nkind (N) = N_Error then
return False;
else
return Find_Controlling_Arg (N) /= Empty;
end if;
end Is_Dynamically_Tagged; end Is_Dynamically_Tagged;
-------------------------- --------------------------
...@@ -1338,7 +1343,11 @@ package body Sem_Disp is ...@@ -1338,7 +1343,11 @@ package body Sem_Disp is
if Prim = New_Op then if Prim = New_Op then
null; null;
elsif Present (Abstract_Interface_Alias (Prim)) -- Note: The check on Is_Subprogram protects the frontend against
-- reading attributes in entities that are not yet fully decorated
elsif Is_Subprogram (Prim)
and then Present (Abstract_Interface_Alias (Prim))
and then Alias (Prim) = Prev_Op and then Alias (Prim) = Prev_Op
then then
Set_Alias (Prim, New_Op); Set_Alias (Prim, New_Op);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment