Only the first pragma was ignored in CodePeer mode, to allow analysis of
legacy code, which caused errors when the second was also present. Now
both are ignored in CodePeer mode.

Tested on x86_64-pc-linux-gnu, committed on trunk

2017-09-12  Yannick Moy  <m...@adacore.com>

        * gnat1drv.adb (Adjust_Global_Switches): Consider Refined_Global
        together with Global when ignoring one in CodePeer mode.

Index: gnat1drv.adb
===================================================================
--- gnat1drv.adb        (revision 252000)
+++ gnat1drv.adb        (working copy)
@@ -66,7 +66,7 @@
 with Set_Targ;
 with Sinfo;    use Sinfo;
 with Sinput.L; use Sinput.L;
-with Snames;
+with Snames;   use Snames;
 with Sprint;   use Sprint;
 with Stringt;
 with Stylesw;  use Stylesw;
@@ -272,9 +272,13 @@
          Restrict.Restrictions.Set   (Max_Asynchronous_Select_Nesting) := True;
          Restrict.Restrictions.Value (Max_Asynchronous_Select_Nesting) := 0;
 
-         --  Enable pragma Ignore_Pragma (Global) to support legacy code
+         --  Enable pragma Ignore_Pragma (Global) to support legacy code. As a
+         --  consequence, Refined_Global pragma should be ignored as well, as
+         --  it is only allowed on a body when pragma Global is given for the
+         --  spec.
 
-         Set_Name_Table_Boolean3 (Name_Id'(Name_Find ("global")), True);
+         Set_Name_Table_Boolean3 (Name_Global, True);
+         Set_Name_Table_Boolean3 (Name_Refined_Global, True);
 
          --  Suppress division by zero checks since they are handled
          --  implicitly by CodePeer.

Reply via email to