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
Typ := Etype (E);
end if;
if not Is_Class_Wide_Type (Typ)
if Comes_From_Source (Subp)
and then Is_Interface (Typ)
and then not Is_Class_Wide_Type (Typ)
and then not Is_Derived_Type (Typ)
and then not Is_Generic_Type (Typ)
and then not In_Instance
......@@ -1211,7 +1212,11 @@ package body Sem_Disp is
function Is_Dynamically_Tagged (N : Node_Id) return Boolean is
begin
if Nkind (N) = N_Error then
return False;
else
return Find_Controlling_Arg (N) /= Empty;
end if;
end Is_Dynamically_Tagged;
--------------------------
......@@ -1338,7 +1343,11 @@ package body Sem_Disp is
if Prim = New_Op then
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
then
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