From: Arnaud Charlet Date: Mon, 20 Jul 2009 13:48:01 +0000 (+0200) Subject: [multiple changes] X-Git-Tag: releases/gcc-4.5.0~4491 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1be9633f758e6174e0ff31c609713a4783f2f865;p=thirdparty%2Fgcc.git [multiple changes] 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. From-SVN: r149819 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index cacf87c9bcd3..33d78b8dd51b 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 000000000000..06cb4a214688 --- /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 015256e9dad0..e3bf4b32287a 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 0c55bb32e05f..3cdf30b81a87 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 14d470c1f01d..04982a30d13d 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 529fadebdb90..6bddf9670b91 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 521a72120f11..5ccf6a0077ef 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 c77d74fb2494..3117f9961649 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 39db631e0d1f..111a9d2d0d67 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 d7ed40da0d28..8456ea32b589 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; ------------------------