]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Fully qualify name in JSON representation info
authorEtienne Servais <servais@adacore.com>
Mon, 17 Jan 2022 15:26:00 +0000 (16:26 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Mon, 9 May 2022 09:27:37 +0000 (09:27 +0000)
The current termination condition of the recursion is wrong.  When in
JSON mode, names should be fully qualified. This requires to stop not at
the first encountered compilation unit but to recurse up to Standard.

gcc/ada/

* repinfo.adb (List_Name): Rework termination condition.

gcc/ada/repinfo.adb

index b77ff4aba5d10171197c437d5ae24800253479d3..ed7312c0f944182d360af1f10f6a0f0b9224640c 100644 (file)
@@ -44,6 +44,7 @@ with Sinfo.Nodes;    use Sinfo.Nodes;
 with Sinfo.Utils;    use Sinfo.Utils;
 with Sinput;         use Sinput;
 with Snames;         use Snames;
+with Stand;          use Stand;
 with Stringt;        use Stringt;
 with Table;
 with Ttypes;
@@ -874,10 +875,11 @@ package body Repinfo is
       C : Character;
 
    begin
-      --  List the qualified name recursively, except
-      --  at compilation unit level in default mode.
+      --  In JSON mode, we recurse up to Standard. This is also valid in
+      --  default mode where we recurse up to the first compilation unit and
+      --  should not get to Standard.
 
-      if Is_Compilation_Unit (Ent) then
+      if Scope (Ent) = Standard_Standard then
          null;
       elsif not Is_Compilation_Unit (Scope (Ent))
         or else List_Representation_Info_To_JSON