[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:
Piotr Trojanek 2020-08-11 16:14:19 +02:00 committed by Pierre-Marie de Rodat
parent f5d2432f92
commit 1c583927a5

View File

@ -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;