From 040277b12efb793d591f7ff2cdb2415da0662198 Mon Sep 17 00:00:00 2001 From: charlet Date: Mon, 20 Jul 2009 13:48:01 +0000 Subject: [PATCH] 2009-07-20 Gary Dismukes * exp_prag.adb (Expand_Pragma_Import_Export_Exception): When compiling for VMS, only rewrite the first component of the associated exception's aggregate init (as 'V'), and eliminate the bogus rewrites of the second and third components that were being replaced with 'M' and 'S'. 2009-07-20 Arnaud Charlet * gnat1drv.adb (Gnat1drv): Suppress access checks in CodePeer mode. Also do not generate error when parsing a spec in CodePeer mode. 2009-07-20 Javier Miranda * checks.adb (Apply_Access_Check): Avoid checks on availability of runtime function Offset_To_Top_Ptr when compiling with no tagged types expansion. * exp_ch3.adb (Build_Init_Procedure): Leave open the possibility of adding code to the init proc when compiling for VM backends. 2009-07-20 Vincent Celier * switch-m.adb (Normalize_Compiler_Switches): Take into account switches -gnatw.? 2009-07-20 Thomas Quinot * sem_dist.adb, exp_dist.adb: Minor reformatting * Make-generated.in: New file. * gcc-interface/Make-lang.in: Use Make-generated.in fragment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149819 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 33 ++++++++++ gcc/ada/Make-generated.in | 126 +++++++++++++++++++++++++++++++++++++ gcc/ada/checks.adb | 3 +- gcc/ada/exp_ch3.adb | 5 +- gcc/ada/exp_dist.adb | 7 +-- gcc/ada/exp_prag.adb | 41 ++++-------- gcc/ada/gcc-interface/Make-lang.in | 104 +----------------------------- gcc/ada/gnat1drv.adb | 14 ++++- gcc/ada/sem_dist.adb | 6 +- gcc/ada/switch-m.adb | 19 ++++-- 10 files changed, 205 insertions(+), 153 deletions(-) create mode 100644 gcc/ada/Make-generated.in diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index cacf87c..33d78b8 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,36 @@ +2009-07-20 Gary Dismukes + + * exp_prag.adb (Expand_Pragma_Import_Export_Exception): When compiling + for VMS, only rewrite the first component of the associated exception's + aggregate init (as 'V'), and eliminate the bogus rewrites of the second + and third components that were being replaced with 'M' and 'S'. + +2009-07-20 Arnaud Charlet + + * gnat1drv.adb (Gnat1drv): Suppress access checks in CodePeer mode. + Also do not generate error when parsing a spec in CodePeer mode. + +2009-07-20 Javier Miranda + + * checks.adb (Apply_Access_Check): Avoid checks on availability of + runtime function Offset_To_Top_Ptr when compiling with no tagged + types expansion. + * exp_ch3.adb (Build_Init_Procedure): Leave open the possibility of + adding code to the init proc when compiling for VM backends. + +2009-07-20 Vincent Celier + + * switch-m.adb (Normalize_Compiler_Switches): Take into account + switches -gnatw.? + +2009-07-20 Thomas Quinot + + * sem_dist.adb, exp_dist.adb: Minor reformatting + + * Make-generated.in: New file. + + * gcc-interface/Make-lang.in: Use Make-generated.in fragment. + 2009-07-20 Javier Miranda * sem_util.ads, sem_util.adb (Check_Dynamically_Tagged_Expression): New diff --git a/gcc/ada/Make-generated.in b/gcc/ada/Make-generated.in new file mode 100644 index 0000000..06cb4a2 --- /dev/null +++ b/gcc/ada/Make-generated.in @@ -0,0 +1,126 @@ +# Dependencies for compiler sources that are generated at build time + +# Note: can't use ?= here, not supported by older versions of GNU Make + +ifeq ($(origin ADA_GEN_SUBDIR), undefined) +ADA_GEN_SUBDIR=ada +endif + +ifeq ($(origin CP), undefined) +CP=cp +endif + +ifeq ($(origin MKDIR), undefined) +MKDIR=mkdir -p +endif + +ifeq ($(origin MOVE_IF_CHANGE), undefined) +MOVE_IF_CHANGE=mv -f +endif + +ada_extra_files : $(ADA_GEN_SUBDIR)/treeprs.ads $(ADA_GEN_SUBDIR)/einfo.h $(ADA_GEN_SUBDIR)/sinfo.h $(ADA_GEN_SUBDIR)/nmake.adb \ + $(ADA_GEN_SUBDIR)/nmake.ads $(ADA_GEN_SUBDIR)/snames.ads $(ADA_GEN_SUBDIR)/snames.adb $(ADA_GEN_SUBDIR)/snames.h + +# We delete the files before copying, below, in case they are read-only. + +$(ADA_GEN_SUBDIR)/treeprs.ads : $(ADA_GEN_SUBDIR)/treeprs.adt $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/xtreeprs.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/treeprs + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/treeprs/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/treeprs + (cd $(ADA_GEN_SUBDIR)/bldtools/treeprs; gnatmake -q xtreeprs ; ./xtreeprs ../../treeprs.ads ) + +$(ADA_GEN_SUBDIR)/einfo.h : $(ADA_GEN_SUBDIR)/einfo.ads $(ADA_GEN_SUBDIR)/einfo.adb $(ADA_GEN_SUBDIR)/xeinfo.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/einfo + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/einfo/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/einfo + (cd $(ADA_GEN_SUBDIR)/bldtools/einfo; gnatmake -q xeinfo ; ./xeinfo ../../einfo.h ) + +$(ADA_GEN_SUBDIR)/sinfo.h : $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/xsinfo.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/sinfo + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/sinfo/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/sinfo + (cd $(ADA_GEN_SUBDIR)/bldtools/sinfo; gnatmake -q xsinfo ; ./xsinfo ../../sinfo.h ) + +$(ADA_GEN_SUBDIR)/snames.h $(ADA_GEN_SUBDIR)/snames.ads $(ADA_GEN_SUBDIR)/snames.adb : $(ADA_GEN_SUBDIR)/stamp-snames ; @true +$(ADA_GEN_SUBDIR)/stamp-snames : $(ADA_GEN_SUBDIR)/snames.ads-tmpl $(ADA_GEN_SUBDIR)/snames.adb-tmpl $(ADA_GEN_SUBDIR)/snames.h-tmpl $(ADA_GEN_SUBDIR)/xsnamest.adb $(ADA_GEN_SUBDIR)/xutil.ads $(ADA_GEN_SUBDIR)/xutil.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/snamest + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/snamest/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/snamest + (cd $(ADA_GEN_SUBDIR)/bldtools/snamest; gnatmake -q xsnamest ; ./xsnamest ) + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.ns $(ADA_GEN_SUBDIR)/snames.ads + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.nb $(ADA_GEN_SUBDIR)/snames.adb + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.nh $(ADA_GEN_SUBDIR)/snames.h + touch $(ADA_GEN_SUBDIR)/stamp-snames + +$(ADA_GEN_SUBDIR)/nmake.adb : $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/nmake.adt $(ADA_GEN_SUBDIR)/xnmake.adb $(ADA_GEN_SUBDIR)/xutil.ads $(ADA_GEN_SUBDIR)/xutil.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/nmake_b + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/nmake_b/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/nmake_b + (cd $(ADA_GEN_SUBDIR)/bldtools/nmake_b; gnatmake -q xnmake ; ./xnmake -b ../../nmake.adb ) + +$(ADA_GEN_SUBDIR)/nmake.ads : $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/nmake.adt $(ADA_GEN_SUBDIR)/xnmake.adb $(ADA_GEN_SUBDIR)/nmake.adb $(ADA_GEN_SUBDIR)/xutil.ads $(ADA_GEN_SUBDIR)/xutil.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/nmake_s + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/nmake_s/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/nmake_s + (cd $(ADA_GEN_SUBDIR)/bldtools/nmake_s; gnatmake -q xnmake ; ./xnmake -s ../../nmake.ads ) + +ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(subst -, ,$(host)))),) +OSCONS_CPP=../../../$(DECC) -E /comment=as_is -DNATIVE \ + -DTARGET='""$(target)""' s-oscons-tmplt.c + +OSCONS_EXTRACT=../../../$(DECC) -DNATIVE \ + -DTARGET='""$(target)""' s-oscons-tmplt.c ; \ + ld -o s-oscons-tmplt.exe s-oscons-tmplt.obj; \ + ./s-oscons-tmplt.exe > s-oscons-tmplt.s + +else +# GCC_FOR_TARGET has paths relative to the gcc directory, so we need to ajust +# for running it from $(ADA_GEN_SUBDIR)/bldtools/oscons +OSCONS_CC=`echo "$(GCC_FOR_TARGET)" \ + | sed -e 's^\./xgcc^../../../xgcc^' -e 's^-B./^-B../../../^'` +OSCONS_CPP=$(OSCONS_CC) $(GNATLIBCFLAGS) -E -C \ + -DTARGET=\"$(target)\" s-oscons-tmplt.c > s-oscons-tmplt.i +OSCONS_EXTRACT=$(OSCONS_CC) -S s-oscons-tmplt.i +endif + +$(ADA_GEN_SUBDIR)/s-oscons.ads : $(ADA_GEN_SUBDIR)/s-oscons-tmplt.c $(ADA_GEN_SUBDIR)/gsocket.h $(ADA_GEN_SUBDIR)/xoscons.adb $(ADA_GEN_SUBDIR)/xutil.ads $(ADA_GEN_SUBDIR)/xutil.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/oscons + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/oscons/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/oscons + (cd $(ADA_GEN_SUBDIR)/bldtools/oscons ; gnatmake -q xoscons ; \ + $(RM) s-oscons-tmplt.i s-oscons-tmplt.s ; \ + $(OSCONS_CPP) ; \ + $(OSCONS_EXTRACT) ; \ + ./xoscons ; \ + $(RM) ../../s-oscons.ads ; \ + $(CP) s-oscons.ads s-oscons.h ../../) + +$(ADA_GEN_SUBDIR)/sdefault.adb: $(ADA_GEN_SUBDIR)/stamp-sdefault ; @true +$(ADA_GEN_SUBDIR)/stamp-sdefault : $(srcdir)/version.c Makefile + $(ECHO) "pragma Style_Checks (Off);" >tmp-sdefault.adb + $(ECHO) "with Osint; use Osint;" >>tmp-sdefault.adb + $(ECHO) "package body Sdefault is" >>tmp-sdefault.adb + $(ECHO) " S0 : constant String := \"$(prefix)/\";" >>tmp-sdefault.adb + $(ECHO) " S1 : constant String := \"$(ADA_INCLUDE_DIR)/\";" >>tmp-sdefault.adb + $(ECHO) " S2 : constant String := \"$(ADA_RTL_OBJ_DIR)/\";" >>tmp-sdefault.adb + $(ECHO) " S3 : constant String := \"$(target)/\";" >>tmp-sdefault.adb + $(ECHO) " S4 : constant String := \"$(libsubdir)/\";" >>tmp-sdefault.adb + $(ECHO) " function Include_Dir_Default_Name return String_Ptr is" >>tmp-sdefault.adb + $(ECHO) " begin" >>tmp-sdefault.adb + $(ECHO) " return Relocate_Path (S0, S1);" >>tmp-sdefault.adb + $(ECHO) " end Include_Dir_Default_Name;" >>tmp-sdefault.adb + $(ECHO) " function Object_Dir_Default_Name return String_Ptr is" >>tmp-sdefault.adb + $(ECHO) " begin" >>tmp-sdefault.adb + $(ECHO) " return Relocate_Path (S0, S2);" >>tmp-sdefault.adb + $(ECHO) " end Object_Dir_Default_Name;" >>tmp-sdefault.adb + $(ECHO) " function Target_Name return String_Ptr is" >>tmp-sdefault.adb + $(ECHO) " begin" >>tmp-sdefault.adb + $(ECHO) " return new String'(S3);" >>tmp-sdefault.adb + $(ECHO) " end Target_Name;" >>tmp-sdefault.adb + $(ECHO) " function Search_Dir_Prefix return String_Ptr is" >>tmp-sdefault.adb + $(ECHO) " begin" >>tmp-sdefault.adb + $(ECHO) " return Relocate_Path (S0, S4);" >>tmp-sdefault.adb + $(ECHO) " end Search_Dir_Prefix;" >>tmp-sdefault.adb + $(ECHO) "end Sdefault;" >> tmp-sdefault.adb + $(MOVE_IF_CHANGE) tmp-sdefault.adb $(ADA_GEN_SUBDIR)/sdefault.adb + touch $(ADA_GEN_SUBDIR)/stamp-sdefault diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb index 015256e..e3bf4b3 100644 --- a/gcc/ada/checks.adb +++ b/gcc/ada/checks.adb @@ -454,7 +454,8 @@ package body Checks is -- No check if accessing the Offset_To_Top component of a dispatch -- table. They are safe by construction. - if Present (Etype (P)) + if Tagged_Type_Expansion + and then Present (Etype (P)) and then RTU_Loaded (Ada_Tags) and then RTE_Available (RE_Offset_To_Top_Ptr) and then Etype (P) = RTE (RE_Offset_To_Top_Ptr) diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index 0c55bb3..3cdf30b 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -2482,11 +2482,10 @@ package body Exp_Ch3 is if List_Length (Body_Stmts) = 1 and then Nkind (First (Body_Stmts)) = N_Null_Statement - and then VM_Target /= CLI_Target + and then VM_Target = No_VM then -- Even though the init proc may be null at this time it might get - -- some stuff added to it later by the CIL backend, so always keep - -- it when VM_Target = CLI_Target. + -- some stuff added to it later by the VM backend. Set_Is_Null_Init_Proc (Proc_Id); end if; diff --git a/gcc/ada/exp_dist.adb b/gcc/ada/exp_dist.adb index 14d470c..04982a3 100644 --- a/gcc/ada/exp_dist.adb +++ b/gcc/ada/exp_dist.adb @@ -6817,11 +6817,6 @@ package body Exp_Dist is -- and put the result as well as the exception occurrence in the -- output stream; - -- - a dummy package with an empty spec and a body made of an - -- elaboration part, whose job is to register the receiving - -- part of this RCI package on the name server. This is done - -- by calling System.Partition_Interface.Register_Receiving_Stub. - Build_RPC_Receiver_Body ( RPC_Receiver => Pkg_RPC_Receiver, Request => Request, @@ -7139,7 +7134,7 @@ package body Exp_Dist is Append_To (Register_Pkg_Actuals, New_Occurrence_Of (All_Calls_Remote_E, Loc)); - -- ??? + -- Finally call Register_Pkg_Receiving_Stub with the above parameters Append_To (Stmts, Make_Procedure_Call_Statement (Loc, diff --git a/gcc/ada/exp_prag.adb b/gcc/ada/exp_prag.adb index 529fade..6bddf96 100644 --- a/gcc/ada/exp_prag.adb +++ b/gcc/ada/exp_prag.adb @@ -539,15 +539,14 @@ package body Exp_Prag is Excep_Internal : constant Node_Id := Make_Defining_Identifier (Loc, New_Internal_Name ('V')); - Export_Pragma : Node_Id; - Excep_Alias : Node_Id; - Excep_Object : Node_Id; - Excep_Image : String_Id; - Exdata : List_Id; - Lang1 : Node_Id; - Lang2 : Node_Id; - Lang3 : Node_Id; - Code : Node_Id; + + Export_Pragma : Node_Id; + Excep_Alias : Node_Id; + Excep_Object : Node_Id; + Excep_Image : String_Id; + Exdata : List_Id; + Lang_Char : Node_Id; + Code : Node_Id; begin if Present (Interface_Name (Id)) then @@ -561,30 +560,16 @@ package body Exp_Prag is Exdata := Component_Associations (Expression (Parent (Id))); if Is_VMS_Exception (Id) then - Lang1 := Next (First (Exdata)); - Lang2 := Next (Lang1); - Lang3 := Next (Lang2); + Lang_Char := Next (First (Exdata)); + + -- Change the one-character language designator to 'V' - Rewrite (Expression (Lang1), + Rewrite (Expression (Lang_Char), Make_Character_Literal (Loc, Chars => Name_uV, Char_Literal_Value => UI_From_Int (Character'Pos ('V')))); - Analyze (Expression (Lang1)); - - Rewrite (Expression (Lang2), - Make_Character_Literal (Loc, - Chars => Name_uM, - Char_Literal_Value => - UI_From_Int (Character'Pos ('M')))); - Analyze (Expression (Lang2)); - - Rewrite (Expression (Lang3), - Make_Character_Literal (Loc, - Chars => Name_uS, - Char_Literal_Value => - UI_From_Int (Character'Pos ('S')))); - Analyze (Expression (Lang3)); + Analyze (Expression (Lang_Char)); if Exception_Code (Id) /= No_Uint then Code := diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 521a721..5ccf6a0 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -924,9 +924,6 @@ gnatstage2: force # Ada language specific files. -ada_extra_files : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \ - ada/nmake.ads ada/snames.ads ada/snames.adb ada/snames.h - ada/b_gnat1.c : $(GNAT1_ADA_OBJS) $(GNATBIND) -C $(ADA_INCLUDES) -o ada/b_gnat1.c -n ada/gnat1drv.ali ada/b_gnat1.o : ada/b_gnat1.c @@ -935,112 +932,13 @@ ada/b_gnatb.c : $(GNATBIND_OBJS) ada/gnatbind.o ada/interfac.o $(GNATBIND) -C $(ADA_INCLUDES) -o ada/b_gnatb.c ada/gnatbind.ali ada/b_gnatb.o : ada/b_gnatb.c -# We delete the files before copying, below, in case they are read-only. -ada/treeprs.ads : ada/treeprs.adt ada/sinfo.ads ada/xtreeprs.adb - -$(MKDIR) ada/bldtools/treeprs - $(RM) $(addprefix ada/bldtools/treeprs/,$(notdir $^)) - $(CP) $^ ada/bldtools/treeprs - (cd ada/bldtools/treeprs && $(GNATMAKE) -q xtreeprs && ./xtreeprs ../../treeprs.ads ) - -ada/einfo.h : ada/einfo.ads ada/einfo.adb ada/xeinfo.adb - -$(MKDIR) ada/bldtools/einfo - $(RM) $(addprefix ada/bldtools/einfo/,$(notdir $^)) - $(CP) $^ ada/bldtools/einfo - (cd ada/bldtools/einfo && $(GNATMAKE) -q xeinfo && ./xeinfo ../../einfo.h ) - -ada/sinfo.h : ada/sinfo.ads ada/xsinfo.adb - -$(MKDIR) ada/bldtools/sinfo - $(RM) $(addprefix ada/bldtools/sinfo/,$(notdir $^)) - $(CP) $^ ada/bldtools/sinfo - (cd ada/bldtools/sinfo && $(GNATMAKE) -q xsinfo && ./xsinfo ../../sinfo.h ) - -ada/snames.h ada/snames.ads ada/snames.adb : ada/stamp-snames ; @true -ada/stamp-snames : ada/snames.ads-tmpl ada/snames.adb-tmpl ada/snames.h-tmpl ada/xsnamest.adb ada/xutil.ads ada/xutil.adb - -$(MKDIR) ada/bldtools/snamest - $(RM) $(addprefix ada/bldtools/snamest/,$(notdir $^)) - $(CP) $^ ada/bldtools/snamest - (cd ada/bldtools/snamest; gnatmake -q xsnamest ; ./xsnamest ) - $(srcdir)/../move-if-change ada/bldtools/snamest/snames.ns ada/snames.ads - $(srcdir)/../move-if-change ada/bldtools/snamest/snames.nb ada/snames.adb - $(srcdir)/../move-if-change ada/bldtools/snamest/snames.nh ada/snames.h - touch ada/stamp-snames - -ada/nmake.adb : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb ada/xutil.ads ada/xutil.adb - -$(MKDIR) ada/bldtools/nmake_b - $(RM) $(addprefix ada/bldtools/nmake_b/,$(notdir $^)) - $(CP) $^ ada/bldtools/nmake_b - (cd ada/bldtools/nmake_b && $(GNATMAKE) -q xnmake && ./xnmake -b ../../nmake.adb ) - -ada/nmake.ads : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb ada/nmake.adb ada/xutil.ads ada/xutil.adb - -$(MKDIR) ada/bldtools/nmake_s - $(RM) $(addprefix ada/bldtools/nmake_s/,$(notdir $^)) - $(CP) $^ ada/bldtools/nmake_s - (cd ada/bldtools/nmake_s && $(GNATMAKE) -q xnmake && ./xnmake -s ../../nmake.ads ) - -ifeq ($(strip $(filter-out alpha64 ia64 dec hp vms% openvms% alphavms%,$(subst -, ,$(host)))),) -OSCONS_CPP=../../../$(DECC) -E /comment=as_is -DNATIVE \ - -DTARGET='""$(target)""' s-oscons-tmplt.c - -OSCONS_EXTRACT=../../../$(DECC) -DNATIVE \ - -DTARGET='""$(target)""' s-oscons-tmplt.c ; \ - ld -o s-oscons-tmplt.exe s-oscons-tmplt.obj; \ - ./s-oscons-tmplt.exe > s-oscons-tmplt.s - -else -OSCONS_CC=`echo "$(GCC_FOR_TARGET)" \ - | sed -e 's^\./xgcc^../../../xgcc^' -e 's^-B./^-B../../../^'` -OSCONS_CPP=$(OSCONS_CC) $(CFLAGS_FOR_TARGET) -E -C \ - -DTARGET=\"$(target)\" s-oscons-tmplt.c > s-oscons-tmplt.i -OSCONS_EXTRACT=$(OSCONS_CC) $(CFLAGS_FOR_TARGET) -S s-oscons-tmplt.i -endif - -ada/s-oscons.ads : ada/s-oscons-tmplt.c ada/gsocket.h ada/xoscons.adb ada/xutil.ads ada/xutil.adb - -$(MKDIR) ada/bldtools/oscons - $(RM) $(addprefix ada/bldtools/oscons/,$(notdir $^)) - $(CP) $^ ada/bldtools/oscons - (cd ada/bldtools/oscons ; gnatmake -q xoscons ; \ - $(RM) s-oscons-tmplt.i s-oscons-tmplt.s ; \ - $(OSCONS_CPP) ; \ - $(OSCONS_EXTRACT) ; \ - ./xoscons ; \ - $(RM) ../../s-oscons.ads ; \ - $(CP) s-oscons.ads s-oscons.h ../../) +include $(srcdir)/ada/Make-generated.in update-sources : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \ ada/nmake.ads $(RM) $(addprefix $(srcdir)/ada/,$(notdir $^)) $(CP) $^ $(srcdir)/ada -ada/sdefault.adb: ada/stamp-sdefault ; @true -ada/stamp-sdefault : $(srcdir)/version.c Makefile - $(ECHO) "pragma Style_Checks (Off);" >tmp-sdefault.adb - $(ECHO) "with Osint; use Osint;" >>tmp-sdefault.adb - $(ECHO) "package body Sdefault is" >>tmp-sdefault.adb - $(ECHO) " S0 : constant String := \"$(prefix)/\";" >>tmp-sdefault.adb - $(ECHO) " S1 : constant String := \"$(ADA_INCLUDE_DIR)/\";" >>tmp-sdefault.adb - $(ECHO) " S2 : constant String := \"$(ADA_RTL_OBJ_DIR)/\";" >>tmp-sdefault.adb - $(ECHO) " S3 : constant String := \"$(target)/\";" >>tmp-sdefault.adb - $(ECHO) " S4 : constant String := \"$(libsubdir)/\";" >>tmp-sdefault.adb - $(ECHO) " function Include_Dir_Default_Name return String_Ptr is" >>tmp-sdefault.adb - $(ECHO) " begin" >>tmp-sdefault.adb - $(ECHO) " return Relocate_Path (S0, S1);" >>tmp-sdefault.adb - $(ECHO) " end Include_Dir_Default_Name;" >>tmp-sdefault.adb - $(ECHO) " function Object_Dir_Default_Name return String_Ptr is" >>tmp-sdefault.adb - $(ECHO) " begin" >>tmp-sdefault.adb - $(ECHO) " return Relocate_Path (S0, S2);" >>tmp-sdefault.adb - $(ECHO) " end Object_Dir_Default_Name;" >>tmp-sdefault.adb - $(ECHO) " function Target_Name return String_Ptr is" >>tmp-sdefault.adb - $(ECHO) " begin" >>tmp-sdefault.adb - $(ECHO) " return new String'(S3);" >>tmp-sdefault.adb - $(ECHO) " end Target_Name;" >>tmp-sdefault.adb - $(ECHO) " function Search_Dir_Prefix return String_Ptr is" >>tmp-sdefault.adb - $(ECHO) " begin" >>tmp-sdefault.adb - $(ECHO) " return Relocate_Path (S0, S4);" >>tmp-sdefault.adb - $(ECHO) " end Search_Dir_Prefix;" >>tmp-sdefault.adb - $(ECHO) "end Sdefault;" >> tmp-sdefault.adb - $(srcdir)/../move-if-change tmp-sdefault.adb ada/sdefault.adb - touch ada/stamp-sdefault - ada/sdefault.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/hostparm.ads ada/namet.ads \ ada/opt.ads ada/osint.ads ada/output.ads ada/sdefault.ads ada/sdefault.adb \ diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb index c77d74f..3117f99 100644 --- a/gcc/ada/gnat1drv.adb +++ b/gcc/ada/gnat1drv.adb @@ -164,10 +164,13 @@ procedure Gnat1drv is Dynamic_Elaboration_Checks := False; - -- Suppress overflow checks since this is handled implicitely by - -- CodePeer. Enable all other language checks. + -- Suppress overflow checks and access checks since they are handled + -- implicitely by CodePeer. Enable all other language checks. - Suppress_Options := (Overflow_Check => True, others => False); + Suppress_Options := + (Overflow_Check => True, + Access_Check => True, + others => False); Enable_Overflow_Checks := False; -- Kill debug of generated code, since it messes up sloc values @@ -749,6 +752,11 @@ begin elsif Main_Kind in N_Generic_Renaming_Declaration then Back_End_Mode := Generate_Object; + -- It's not an error to generate SCIL for e.g. a spec which has a body + + elsif CodePeer_Mode then + Back_End_Mode := Generate_Object; + -- In all other cases (specs which have bodies, generics, and bodies -- where subunits are missing), we cannot generate code and we generate -- a warning message. Note that generic instantiations are gone at this diff --git a/gcc/ada/sem_dist.adb b/gcc/ada/sem_dist.adb index 39db631..111a9d2 100644 --- a/gcc/ada/sem_dist.adb +++ b/gcc/ada/sem_dist.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2008, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -350,9 +350,7 @@ package body Sem_Dist is -- Build the function call which will replace the attribute - if Is_Remote_Call_Interface (Ety) - or else Is_Shared_Passive (Ety) - then + if Is_Remote_Call_Interface (Ety) or else Is_Shared_Passive (Ety) then Get_Pt_Id_Call := Make_Function_Call (Loc, Name => Get_Pt_Id, diff --git a/gcc/ada/switch-m.adb b/gcc/ada/switch-m.adb index d7ed40d..8456ea3 100644 --- a/gcc/ada/switch-m.adb +++ b/gcc/ada/switch-m.adb @@ -84,7 +84,7 @@ package body Switch.M is if Switches = null then Switches := new Argument_List (1 .. Initial_Number_Of_Switches); - -- otherwise, if Switches is full, extend it + -- Otherwise, if Switches is full, extend it elsif Last = Switches'Last then declare @@ -407,6 +407,8 @@ package body Switch.M is end if; end if; + -- Loop through remaining switch characters in string + while Ptr <= Max loop C := Switch_Chars (Ptr); Ptr := Ptr + 1; @@ -436,7 +438,16 @@ package body Switch.M is (Storing (Storing'First .. Last_Stored)); end if; - -- All other switches are -gnatxx + -- --gnatx.x + + elsif C = '.' and then Ptr <= Max then + Storing (First_Stored + 1) := '.'; + Storing (First_Stored + 2) := Switch_Chars (Ptr); + Ptr := Ptr + 1; + Add_Switch_Component + (Storing (Storing'First .. First_Stored + 2)); + + -- All other switches are -gnatxx else Storing (First_Stored + 1) := C; @@ -502,8 +513,7 @@ package body Switch.M is end Normalize_Compiler_Switches; function Normalize_Compiler_Switches - (Switch_Chars : String) - return Argument_List + (Switch_Chars : String) return Argument_List is Last : Natural; @@ -515,7 +525,6 @@ package body Switch.M is else return Global_Switches (Global_Switches'First .. Last); end if; - end Normalize_Compiler_Switches; ------------------------ -- 2.7.4