[Ada] Do not query the representation information in CodePeer/GNATprove
authorYannick Moy <moy@adacore.com>
Mon, 11 Jun 2018 09:18:12 +0000 (09:18 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 11 Jun 2018 09:18:12 +0000 (09:18 +0000)
Representation information generated when user calls the compiler with -gnatR
switch is not available when running the frontend inside CodePeer or GNATprove.
Do not query such information in that case, as this leads to spurious messages
that it is not available.

There is no impact on compilation.

2018-06-11  Yannick Moy  <moy@adacore.com>

gcc/ada/

* gnat1drv.adb: Do not check representation information in CodePeer and
GNATprove modes, as these modes call a special backend instead of gigi,
so do not have the information.

From-SVN: r261414

gcc/ada/ChangeLog
gcc/ada/gnat1drv.adb

index c145d7216a184a96bf2ff40eb567f9845a0c3e79..b9bb4791dacf74e76ec9fb519b32e04d271d8ee1 100644 (file)
@@ -1,3 +1,9 @@
+2018-06-11  Yannick Moy  <moy@adacore.com>
+
+       * gnat1drv.adb: Do not check representation information in CodePeer and
+       GNATprove modes, as these modes call a special backend instead of gigi,
+       so do not have the information.
+
 2018-06-11  Yannick Moy  <moy@adacore.com>
 
        * inline.adb (Build_Body_To_Inline): Consider case of extended return
index 06b553664992c1d8562d62a51a415fa8360f96c2..4325cf35e7d8b0b9fd43aef9cc9506a1cea4bff2 100644 (file)
@@ -1455,6 +1455,9 @@ begin
       --  representation information will be provided by the GNSA back end, not
       --  gigi.
 
+      --  A special back end is always called in CodePeer and GNATprove modes,
+      --  unless this is a subunit.
+
       if Back_End_Mode = Declarations_Only
         and then
           (not (Back_Annotate_Rep_Info or Generate_SCIL or GNATprove_Mode)
@@ -1468,7 +1471,11 @@ begin
          Tree_Dump;
          Tree_Gen;
          Namet.Finalize;
-         Check_Rep_Info;
+
+         if not (Generate_SCIL or GNATprove_Mode) then
+            Check_Rep_Info;
+         end if;
+
          return;
       end if;