blob: 5612b7874e467456ff14efcb08acbfa6888cba41 [file] [log] [blame]
-- PR debug/80321
-- { dg-do compile }
-- { dg-options "-O2 -g" }
with Debug10_Pkg; use Debug10_Pkg;
procedure Debug10 (T : Entity_Id) is
procedure Inner (E : Entity_Id);
pragma Inline (Inner);
procedure Inner (E : Entity_Id) is
begin
if E /= Empty
and then not Nodes (E + 3).Flag16
then
Debug10 (E);
end if;
end Inner;
function Ekind (E : Entity_Id) return Entity_Kind is
begin
return N_To_E (Nodes (E + 1).Nkind);
end Ekind;
begin
if T = Empty then
return;
end if;
Nodes (T + 3).Flag16 := True;
if Ekind (T) in Object_Kind then
Inner (T);
elsif Ekind (T) in Type_Kind then
Inner (T);
if Ekind (T) in Record_Kind then
if Ekind (T) = E_Class_Wide_Subtype then
Inner (T);
end if;
elsif Ekind (T) in Array_Kind then
Inner (T);
elsif Ekind (T) in Access_Kind then
Inner (T);
elsif Ekind (T) in Scalar_Kind then
if My_Scalar_Range (T) /= Empty
and then My_Test (My_Scalar_Range (T))
then
if My_Is_Entity_Name (T) then
Inner (T);
end if;
if My_Is_Entity_Name (T) then
Inner (T);
end if;
end if;
end if;
end if;
end;