aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2018-12-11 11:11:26 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-12-11 11:11:26 +0000
commitaf3ded0832bd13e8f00fc62d96a367635398d1d6 (patch)
treeeaebef4da5414e79a3b82da4d138af381761195e /gcc
parent1d499c15a84b4a8690f423c7fc11a6edea73d9a2 (diff)
downloadgcc-af3ded0832bd13e8f00fc62d96a367635398d1d6.zip
gcc-af3ded0832bd13e8f00fc62d96a367635398d1d6.tar.gz
gcc-af3ded0832bd13e8f00fc62d96a367635398d1d6.tar.bz2
[Ada] gnatbind: ghost code with -gnatQ
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. 2018-12-11 Bob Duff <duff@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. From-SVN: r267004
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/gnat1drv.adb5
-rw-r--r--gcc/ada/gnatbind.adb1
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 33d2a14..b70184f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2018-12-11 Bob Duff <duff@adacore.com>
+
+ * 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.
+
2018-12-11 Ed Schonberg <schonberg@adacore.com>
* exp_unst.adb (Needs_Fat_Pointer): A fat pointer is required if
diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb
index 9f42814..bfc3b04 100644
--- a/gcc/ada/gnat1drv.adb
+++ b/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;
diff --git a/gcc/ada/gnatbind.adb b/gcc/ada/gnatbind.adb
index 5ab1bf1..7d42b6b 100644
--- a/gcc/ada/gnatbind.adb
+++ b/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;