aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/lib-writ.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2007-06-06 12:37:41 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2007-06-06 12:37:41 +0200
commitd3cc6a322691df8a2732ec4ee5b0957caa057316 (patch)
treea8498719c9b6fae7520643f6460dafa368f13ec6 /gcc/ada/lib-writ.adb
parent437bae3f742fc7f73ca0755a9e23c503aea872e1 (diff)
downloadgcc-d3cc6a322691df8a2732ec4ee5b0957caa057316.zip
gcc-d3cc6a322691df8a2732ec4ee5b0957caa057316.tar.gz
gcc-d3cc6a322691df8a2732ec4ee5b0957caa057316.tar.bz2
lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, since both are separated.
2007-04-20 Arnaud Charlet <charlet@adacore.com> Vincent Celier <celier@adacore.com> * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, since both are separated. Add support for imported CIL packages. Add further special handling of "value_type" for CIL. Add special handling of pragma Import for CIL. * make.ads, make.adb: When switch -eS is used, direct all outputs to standard output instead of standard error, except errors. (Absolute_Path): Use untouched casing for the parent directory. (Add_Library_Search_Dir): Use the untouched directory name. (Add_Source_Search_Dir): Idem. (Change_To_Object_Directory): Update output to use proper casing. (Create_Binder_Mapping_File): Use the untouched filename to set ALI_Name. (Gnatmake): Use untouched library and executable directory names. (Insert_Project_Sources): Use untouched filename for spec and body. (Is_In_Object_Directory): Use untouched object directory. (Mark_Directory): Idem. (Collect_Arguments_And_Compile): Ensure that Full_Source_File always contains the non-canonical filename in all cases. (Change_To_Object_Directory): In verbose mode, display the name of the object directory we're changing to. (Compile_Sources): Make sure, when a project file is used, to compile the body of the unit, when there is one, even when only the spec is recorded in an ALI file. (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the spec to the body. (Report_Compilation_Failed): New procedure (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg): procedures moved from the spec to the body. (Extract_Failure): Removed, not used Replace explicit raises of exception Bind_Failed and Link_Failed with calls to Make_Failed with the proper message. Replace explicit raises of exception Compilation_Failed with calls to procedure Report_Compilation_Failed. (Initialize): Create mapping files unconditionally when using project files. * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL, Pragma_CIL_Constructor): New names. * targparm.ads, targparm.adb (Compiler_System_Version): Removed, no longer used. (Get_Target_Parameters): Relax checks on system.ads validity. Add handling of two new system flags: JVM and CLI. From-SVN: r125432
Diffstat (limited to 'gcc/ada/lib-writ.adb')
-rw-r--r--gcc/ada/lib-writ.adb21
1 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ada/lib-writ.adb b/gcc/ada/lib-writ.adb
index 14c62f0..d62b70d 100644
--- a/gcc/ada/lib-writ.adb
+++ b/gcc/ada/lib-writ.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2006, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2007, 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- --
@@ -33,7 +33,6 @@ with Fname; use Fname;
with Fname.UF; use Fname.UF;
with Lib.Util; use Lib.Util;
with Lib.Xref; use Lib.Xref;
-with Namet; use Namet;
with Nlists; use Nlists;
with Gnatvsn; use Gnatvsn;
with Opt; use Opt;
@@ -45,6 +44,7 @@ with Rident; use Rident;
with Scn; use Scn;
with Sinfo; use Sinfo;
with Sinput; use Sinput;
+with Snames; use Snames;
with Stringt; use Stringt;
with Tbuild; use Tbuild;
with Uname; use Uname;
@@ -71,8 +71,8 @@ package body Lib.Writ is
Units.Increment_Last;
Units.Table (Units.Last) :=
(Unit_File_Name => File_Name (S),
- Unit_Name => No_Name,
- Expected_Unit => No_Name,
+ Unit_Name => No_Unit_Name,
+ Expected_Unit => No_Unit_Name,
Source_Index => S,
Cunit => Empty,
Cunit_Entity => Empty,
@@ -427,7 +427,16 @@ package body Lib.Writ is
(Declaration_Node
(Body_Entity (Uent))))))
then
- Write_Info_Str (" EE");
+ if Convention (Uent) = Convention_CIL then
+
+ -- Special case for generic CIL packages which never have
+ -- elaboration code
+
+ Write_Info_Str (" NE");
+
+ else
+ Write_Info_Str (" EE");
+ end if;
end if;
if Has_No_Elaboration_Code (Unode) then
@@ -672,7 +681,7 @@ package body Lib.Writ is
-- For preproc. data and def. files, there is no Unit_Name,
-- check for that first.
- if Unit_Name (J) /= No_Name
+ if Unit_Name (J) /= No_Unit_Name
and then (With_Flags (J) or else Unit_Name (J) = Pname)
then
Num_Withs := Num_Withs + 1;