OSDN Git Service

2009-07-20 Gary Dismukes <dismukes@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jul 2009 13:48:01 +0000 (13:48 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 20 Jul 2009 13:48:01 +0000 (13:48 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149819 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/Make-generated.in [new file with mode: 0644]
gcc/ada/checks.adb
gcc/ada/exp_ch3.adb
gcc/ada/exp_dist.adb
gcc/ada/exp_prag.adb
gcc/ada/gcc-interface/Make-lang.in
gcc/ada/gnat1drv.adb
gcc/ada/sem_dist.adb
gcc/ada/switch-m.adb

index cacf87c..33d78b8 100644 (file)
@@ -1,3 +1,36 @@
+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
diff --git a/gcc/ada/Make-generated.in b/gcc/ada/Make-generated.in
new file mode 100644 (file)
index 0000000..06cb4a2
--- /dev/null
@@ -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
index 015256e..e3bf4b3 100644 (file)
@@ -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)
index 0c55bb3..3cdf30b 100644 (file)
@@ -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;
index 14d470c..04982a3 100644 (file)
@@ -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,
index 529fade..6bddf96 100644 (file)
@@ -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 :=
index 521a721..5ccf6a0 100644 (file)
@@ -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 \
index c77d74f..3117f99 100644 (file)
@@ -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
index 39db631..111a9d2 100644 (file)
@@ -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,
index d7ed40d..8456ea3 100644 (file)
@@ -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;
 
    ------------------------