[Ada] Cleanup repeated code in checks for unused WITH clauses
gcc/ada/ * sem_warn.adb (Check_One_Unit): Avoid repeated calls by using a local variable Lunit; remove local constant Eitem, which was identical to Lunit.
This commit is contained in:
parent
f5d2432f92
commit
1c583927a5
@ -2507,7 +2507,7 @@ package body Sem_Warn is
|
||||
-- package with only a linker options pragma and nothing
|
||||
-- else or a pragma elaborate with a body library task).
|
||||
|
||||
elsif Has_Visible_Entities (Entity (Name (Item))) then
|
||||
elsif Has_Visible_Entities (Lunit) then
|
||||
Error_Msg_N -- CODEFIX
|
||||
("?u?unit& is not referenced!", Name (Item));
|
||||
end if;
|
||||
@ -2582,58 +2582,50 @@ package body Sem_Warn is
|
||||
-- Else the warning may be needed
|
||||
|
||||
else
|
||||
declare
|
||||
Eitem : constant Entity_Id :=
|
||||
Entity (Name (Item));
|
||||
-- Warn if we unreferenced flag set and we have
|
||||
-- not had serious errors. The reason we inhibit
|
||||
-- the message if there are errors is to prevent
|
||||
-- false positives from disabling expansion.
|
||||
|
||||
begin
|
||||
-- Warn if we unreferenced flag set and we
|
||||
-- have not had serious errors. The reason we
|
||||
-- inhibit the message if there are errors is
|
||||
-- to prevent false positives from disabling
|
||||
-- expansion.
|
||||
if not Has_Unreferenced (Lunit)
|
||||
and then Serious_Errors_Detected = 0
|
||||
then
|
||||
-- Get possible package renaming
|
||||
|
||||
if not Has_Unreferenced (Eitem)
|
||||
and then Serious_Errors_Detected = 0
|
||||
Pack := Find_Package_Renaming (Munite, Lunit);
|
||||
|
||||
-- No warning if either the package or its
|
||||
-- renaming is used as a generic actual.
|
||||
|
||||
if Used_As_Generic_Actual (Lunit)
|
||||
or else
|
||||
(Present (Pack)
|
||||
and then
|
||||
Used_As_Generic_Actual (Pack))
|
||||
then
|
||||
-- Get possible package renaming
|
||||
|
||||
Pack :=
|
||||
Find_Package_Renaming (Munite, Lunit);
|
||||
|
||||
-- No warning if either the package or its
|
||||
-- renaming is used as a generic actual.
|
||||
|
||||
if Used_As_Generic_Actual (Eitem)
|
||||
or else
|
||||
(Present (Pack)
|
||||
and then
|
||||
Used_As_Generic_Actual (Pack))
|
||||
then
|
||||
exit;
|
||||
end if;
|
||||
|
||||
-- Here we give the warning
|
||||
|
||||
Error_Msg_N -- CODEFIX
|
||||
("?u?no entities of & are referenced!",
|
||||
Name (Item));
|
||||
|
||||
-- Flag renaming of package as well. If
|
||||
-- the original package has warnings off,
|
||||
-- we suppress the warning on the renaming
|
||||
-- as well.
|
||||
|
||||
if Present (Pack)
|
||||
and then not Has_Warnings_Off (Lunit)
|
||||
and then not Has_Unreferenced (Pack)
|
||||
then
|
||||
Error_Msg_NE -- CODEFIX
|
||||
("?u?no entities of& are referenced!",
|
||||
Unit_Declaration_Node (Pack), Pack);
|
||||
end if;
|
||||
exit;
|
||||
end if;
|
||||
end;
|
||||
|
||||
-- Here we give the warning
|
||||
|
||||
Error_Msg_N -- CODEFIX
|
||||
("?u?no entities of & are referenced!",
|
||||
Name (Item));
|
||||
|
||||
-- Flag renaming of package as well. If
|
||||
-- the original package has warnings off,
|
||||
-- we suppress the warning on the renaming
|
||||
-- as well.
|
||||
|
||||
if Present (Pack)
|
||||
and then not Has_Warnings_Off (Lunit)
|
||||
and then not Has_Unreferenced (Pack)
|
||||
then
|
||||
Error_Msg_NE -- CODEFIX
|
||||
("?u?no entities of& are referenced!",
|
||||
Unit_Declaration_Node (Pack), Pack);
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
exit;
|
||||
|
Loading…
Reference in New Issue
Block a user