+2009-07-20 Gary Dismukes <dismukes@adacore.com>
+
+ * 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 <charlet@adacore.com>
+
+ * 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 <miranda@adacore.com>
+
+ * 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 <celier@adacore.com>
+
+ * switch-m.adb (Normalize_Compiler_Switches): Take into account
+ switches -gnatw.?
+
+2009-07-20 Thomas Quinot <quinot@adacore.com>
+
+ * 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 <miranda@adacore.com>
* sem_util.ads, sem_util.adb (Check_Dynamically_Tagged_Expression): New
--- /dev/null
+# 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
-- 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)
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;
-- 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,
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,
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
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 :=
# 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
$(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 \
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
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
-- --
-- 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- --
-- 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,
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
end if;
end if;
+ -- Loop through remaining switch characters in string
+
while Ptr <= Max loop
C := Switch_Chars (Ptr);
Ptr := Ptr + 1;
(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;
end Normalize_Compiler_Switches;
function Normalize_Compiler_Switches
- (Switch_Chars : String)
- return Argument_List
+ (Switch_Chars : String) return Argument_List
is
Last : Natural;
else
return Global_Switches (Global_Switches'First .. Last);
end if;
-
end Normalize_Compiler_Switches;
------------------------