* [Ada] Don't allow entry in implicit with chain to be ghost
@ 2021-12-02 16:28 Pierre-Marie de Rodat
0 siblings, 0 replies; only message in thread
From: Pierre-Marie de Rodat @ 2021-12-02 16:28 UTC (permalink / raw)
To: gcc-patches; +Cc: Richard Kenner
[-- Attachment #1: Type: text/plain, Size: 345 bytes --]
When we add an entry to the implicit with chain of a unit while adding
an RTS unit, we must not mark it as a ignored ghost statement because it
points to the next with in the chain.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* rtsfind.adb (Maybe_Add_With): Ensure that the added "with" is
never marked as ignored ghost code.
[-- Attachment #2: patch.diff --]
[-- Type: text/x-diff, Size: 1322 bytes --]
diff --git a/gcc/ada/rtsfind.adb b/gcc/ada/rtsfind.adb
--- a/gcc/ada/rtsfind.adb
+++ b/gcc/ada/rtsfind.adb
@@ -1248,9 +1248,10 @@ package body Rtsfind is
-- for this unit to the current compilation unit.
declare
- LibUnit : constant Node_Id := Unit (Cunit (U.Unum));
- Clause : Node_Id;
- Withn : Node_Id;
+ LibUnit : constant Node_Id := Unit (Cunit (U.Unum));
+ Saved_GM : constant Ghost_Mode_Type := Ghost_Mode;
+ Clause : Node_Id;
+ Withn : Node_Id;
begin
Clause := U.First_Implicit_With;
@@ -1262,11 +1263,18 @@ package body Rtsfind is
Clause := Next_Implicit_With (Clause);
end loop;
+ -- We want to make sure that the "with" we create below isn't
+ -- marked as ignored ghost code because this list may be walked
+ -- later, after ignored ghost code is converted to a null
+ -- statement.
+
+ Ghost_Mode := None;
Withn :=
Make_With_Clause (Standard_Location,
Name =>
Make_Unit_Name
(U, Defining_Unit_Name (Specification (LibUnit))));
+ Ghost_Mode := Saved_GM;
Set_Corresponding_Spec (Withn, U.Entity);
Set_First_Name (Withn);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-12-02 16:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-02 16:28 [Ada] Don't allow entry in implicit with chain to be ghost Pierre-Marie de Rodat
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).