After a change done for GNATProve in 2016, CodePeer_Mode was not using
the regular exception mechanism. This resulted in imprecise control-flow
graphs in some cases. Revert that change for CodePeer. And, since for
GNATprove_Mode Operating_Mode is never Generate_Code, we can simplify
the code a bit.

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

gcc/ada/

        * gnat1drv.adb (Adjust_Global_Switches): Simplify logic.
diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb
--- a/gcc/ada/gnat1drv.adb
+++ b/gcc/ada/gnat1drv.adb
@@ -633,13 +633,9 @@ procedure Gnat1drv is
       end if;
 
       --  Set and check exception mechanism. This is only meaningful when
-      --  compiling, and in particular not meaningful for special modes used
-      --  for program analysis rather than compilation: CodePeer mode and
-      --  GNATprove mode.
+      --  generating code.
 
-      if Operating_Mode = Generate_Code
-        and then not (CodePeer_Mode or GNATprove_Mode)
-      then
+      if Operating_Mode = Generate_Code then
          case Targparm.Frontend_Exceptions_On_Target is
             when True =>
                case Targparm.ZCX_By_Default_On_Target is


Reply via email to