This patch fixes a bug where if a library unit is compiled with -gnatQ,
and that library unit is an ignored Ghost unit, then gnatbind silently
fails.
Tested on x86_64-pc-linux-gnu, committed on trunk
2018-12-11 Bob Duff <d...@adacore.com>
gcc/ada/
* gnat1drv.adb (gnat1drv): Pass the correct Object value when
calling Write_ALI in the case of -gnatQ.
* gnatbind.adb (Gnatbind): Avoid silent failure; give an error
message.
--- gcc/ada/gnat1drv.adb
+++ gcc/ada/gnat1drv.adb
@@ -1452,10 +1452,11 @@ begin
Tree_Gen;
-- Generate ALI file if specially requested, or for missing subunits,
- -- subunits or predefined generic.
+ -- subunits or predefined generic. For ignored ghost code, the object
+ -- file IS generated, so Object should be True.
if Opt.Force_ALI_Tree_File then
- Write_ALI (Object => False);
+ Write_ALI (Object => Is_Ignored_Ghost_Unit (Main_Unit_Node));
end if;
Namet.Finalize;
--- gcc/ada/gnatbind.adb
+++ gcc/ada/gnatbind.adb
@@ -790,6 +790,7 @@ begin
-- Quit if some file needs compiling
if No_Object_Specified then
+ Error_Msg ("no object specified");
raise Unrecoverable_Error;
end if;