[Ada] Create object file for ignored ghost compilation unit
authorRichard Kenner <kenner@adacore.com>
Sat, 13 Nov 2021 13:33:29 +0000 (08:33 -0500)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 1 Dec 2021 10:24:41 +0000 (10:24 +0000)
gcc/ada/

* gnat1drv.adb (Gnat1drv): Force generation of object file if
compilation unit is an ignored ghost.

gcc/ada/gnat1drv.adb

index 55f9efa..12ec98b 100644 (file)
@@ -1415,18 +1415,19 @@ begin
 
       if Back_End_Mode = Skip then
 
-         --  An ignored Ghost unit is rewritten into a null statement because
-         --  it must not produce an ALI or object file. Do not emit any errors
-         --  related to code generation because the unit does not exist.
+         --  An ignored Ghost unit is rewritten into a null statement. Do
+         --  not emit any errors related to code generation because the
+         --  unit does not exist.
 
          if Is_Ignored_Ghost_Unit (Main_Unit_Node) then
 
             --  Exit the gnat driver with success, otherwise external builders
             --  such as gnatmake and gprbuild will treat the compilation of an
-            --  ignored Ghost unit as a failure. Note that this will produce
-            --  an empty object file for the unit.
+            --  ignored Ghost unit as a failure. Be sure we produce an empty
+            --  object file for the unit.
 
             Ecode := E_Success;
+            Back_End.Gen_Or_Update_Object_File;
 
          --  Otherwise the unit is missing a crucial piece that prevents code
          --  generation.