[Ada] gprbuild fails to find ghost ALI files
authorBob Duff <duff@adacore.com>
Mon, 1 Jul 2019 13:35:43 +0000 (13:35 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 1 Jul 2019 13:35:43 +0000 (13:35 +0000)
This patch fixes a bug where if a ghost unit is compiled with
ignored-ghost mode in a library project, then gprbuild will fail to find
the ALI file, because the compiler generates an empty object file, but
no ALI file.

2019-07-01  Bob Duff  <duff@adacore.com>

gcc/ada/

* gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
ignored-ghost.

From-SVN: r272867

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

index cf6dc8a..95c2cad 100644 (file)
@@ -1,3 +1,8 @@
+2019-07-01  Bob Duff  <duff@adacore.com>
+
+       * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
+       ignored-ghost.
+
 2019-07-01  Yannick Moy  <moy@adacore.com>
 
        * sem_ch4.adb (Operator_Check): Refine error message.
index cd4518f..1f5817a 100644 (file)
@@ -1453,9 +1453,13 @@ begin
 
          --  Generate ALI file if specially requested, or for missing subunits,
          --  subunits or predefined generic. For ignored ghost code, the object
-         --  file IS generated, so Object should be True.
+         --  file IS generated, so Object should be True, and since the object
+         --  file is generated, we need to generate the ALI file. We never want
+         --  an object file without an ALI file.
 
-         if Opt.Force_ALI_Tree_File then
+         if Is_Ignored_Ghost_Unit (Main_Unit_Node)
+           or else Opt.Force_ALI_Tree_File
+         then
             Write_ALI (Object => Is_Ignored_Ghost_Unit (Main_Unit_Node));
          end if;