summaryrefslogtreecommitdiffstats
path: root/gcc/ada
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-29 09:36:59 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-29 09:36:59 +0000
commit836b51a0d106e6977d75202a4e4275b97fdcdf93 (patch)
treeab3ea9abe2874400f41876854678114635a331a2 /gcc/ada
parent5a4d11b2bd5f068cfa47f8e959df9e02172e4fdc (diff)
downloadppe42-gcc-836b51a0d106e6977d75202a4e4275b97fdcdf93.tar.gz
ppe42-gcc-836b51a0d106e6977d75202a4e4275b97fdcdf93.zip
2011-08-29 Johannes Kanig <kanig@adacore.com>
* frontend.adb (Frontend): Exit after creating Standard package when -gnatd.H is present. * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is present. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178180 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/frontend.adb6
-rw-r--r--gcc/ada/gnat1drv.adb17
3 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 04df953f26a..f48eafe207c 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2011-08-29 Johannes Kanig <kanig@adacore.com>
+
+ * frontend.adb (Frontend): Exit after creating Standard package when
+ -gnatd.H is present.
+ * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
+ present.
+
2011-08-29 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
diff --git a/gcc/ada/frontend.adb b/gcc/ada/frontend.adb
index c6dd8cb5991..f849d31ecf9 100644
--- a/gcc/ada/frontend.adb
+++ b/gcc/ada/frontend.adb
@@ -98,6 +98,12 @@ begin
CStand.Create_Standard;
+ -- If the -gnatd.H flag is present, we are only interested in the Standard
+ -- package, so the frontend has done its job here.
+ if Debug_Flag_Dot_HH then
+ return;
+ end if;
+
-- Check possible symbol definitions specified by -gnateD switches
Prepcomp.Process_Command_Line_Symbol_Definitions;
diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb
index febce1ba39d..b494bd4c908 100644
--- a/gcc/ada/gnat1drv.adb
+++ b/gcc/ada/gnat1drv.adb
@@ -771,8 +771,23 @@ begin
Frontend;
-- Exit with errors if the main source could not be parsed
-
+ -- Also, when -gnatd.H is present, the source file is not set.
if Sinput.Main_Source_File = No_Source_File then
+ if Debug_Flag_Dot_HH then
+ -- We lock all the tables to keep the convention that the backend
+ -- needs to unlock the tables it wants to touch.
+ Atree.Lock;
+ Elists.Lock;
+ Fname.UF.Lock;
+ Inline.Lock;
+ Lib.Lock;
+ Nlists.Lock;
+ Sem.Lock;
+ Sinput.Lock;
+ Namet.Lock;
+ Stringt.Lock;
+ Back_End.Call_Back_End (Back_End.Generate_Object);
+ end if;
Errout.Finalize (Last_Call => True);
Errout.Output_Messages;
Exit_Program (E_Errors);
OpenPOWER on IntegriCloud