[multiple changes]

2010-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sprint.adb (Sprint_Node_Actual, case N_Derived_Type_Definition): Do
	not reset Sloc when printing keyword "new".

2010-09-10  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (GNATCmd): Put the command line in environment variable
	GNAT_DRIVER_COMMAND_LINE.

2010-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Do_Unit_And_Dependents): if Withed_Body is set on a context
	clause, process the body at once.

2010-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Type_Conversion): Do not warn on a redundant
	conversion is the expression is a qualified expression used to
	disambiguate a function call.

2010-09-10  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Add_Source): Allow an Ada source to have the same name
	as a source of another project and of another language.

2010-09-10  Robert Dewar  <dewar@adacore.com>

	* prj-util.adb: Minor reformatting.

From-SVN: r164159
This commit is contained in:
Arnaud Charlet 2010-09-10 12:28:45 +02:00
parent af80460358
commit be257e995d
7 changed files with 105 additions and 21 deletions

View File

@ -1,3 +1,33 @@
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* sprint.adb (Sprint_Node_Actual, case N_Derived_Type_Definition): Do
not reset Sloc when printing keyword "new".
2010-09-10 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (GNATCmd): Put the command line in environment variable
GNAT_DRIVER_COMMAND_LINE.
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* sem.adb (Do_Unit_And_Dependents): if Withed_Body is set on a context
clause, process the body at once.
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Type_Conversion): Do not warn on a redundant
conversion is the expression is a qualified expression used to
disambiguate a function call.
2010-09-10 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Add_Source): Allow an Ada source to have the same name
as a source of another project and of another language.
2010-09-10 Robert Dewar <dewar@adacore.com>
* prj-util.adb: Minor reformatting.
2010-09-10 Eric Botcazou <ebotcazou@adacore.com>
* exp_disp.adb: Minor reformatting.

View File

@ -1349,6 +1349,19 @@ begin
Targparm.Get_Target_Parameters;
-- Put the command line in environment variable GNAT_DRIVER_COMMAND_LINE,
-- so that the spawned tool may know the way the GNAT driver was invoked.
Name_Len := 0;
Add_Str_To_Name_Buffer (Command_Name);
for J in 1 .. Argument_Count loop
Add_Char_To_Name_Buffer (' ');
Add_Str_To_Name_Buffer (Argument (J));
end loop;
Setenv ("GNAT_DRIVER_COMMAND_LINE", Name_Buffer (1 .. Name_Len));
-- Add the directory where the GNAT driver is invoked in front of the path,
-- if the GNAT driver is invoked with directory information. Do not do this
-- for VMS, where the notion of path does not really exist.

View File

@ -722,6 +722,7 @@ package body Prj.Nmsc is
elsif not Source.Locally_Removed
and then not Data.Flags.Allow_Duplicate_Basenames
and then Lang_Id.Config.Kind = Unit_Based
and then Source.Language.Config.Kind = Unit_Based
then
Error_Msg_File_1 := File_Name;
Error_Msg_File_2 := File_Name_Type (Source.Project.Name);

View File

@ -189,11 +189,10 @@ package body Prj.Util is
elsif Builder_Package /= No_Package then
-- If the suffix is specified in the project itself, as
-- opposed to the config file, it needs to be taken into account.
-- Unfortunately, when the project was processed, in both cases
-- the suffix is stored in Project.Config, so get it from the
-- project again.
-- If the suffix is specified in the project itself, as opposed to
-- the config file, it needs to be taken into account. However,
-- when the project was processed, in both cases the suffix was
-- stored in Project.Config, so get it from the project again.
Suffix_From_Project :=
Prj.Util.Value_Of

View File

@ -1538,16 +1538,7 @@ package body Sem is
-- This is needed because the spec of the main unit may appear in the
-- context of some other unit. We do not want this to force processing
-- of the main body before all other units have been processed.
function Depends_On_Main (CU : Node_Id) return Boolean;
-- The body of a unit that is withed by the spec of the main unit
-- may in turn have a with_clause on that spec. In that case do not
-- traverse the body, to prevent loops. It can also happen that the
-- main body has a with_clause on a child, which of course has an
-- implicit with on its parent. It's OK to traverse the child body
-- if the main spec has been processed, otherwise we also have a
-- circularity to avoid.
--
-- Another circularity pattern occurs when the main unit is a child unit
-- and the body of an ancestor has a with-clause of the main unit or on
-- one of its children. In both cases the body in question has a with-
@ -1556,6 +1547,14 @@ package body Sem is
-- spec of a subprogram declared in an instance within the parent will
-- not be seen in the main unit.
function Depends_On_Main (CU : Node_Id) return Boolean;
-- The body of a unit that is withed by the spec of the main unit may in
-- turn have a with_clause on that spec. In that case do not traverse
-- the body, to prevent loops. It can also happen that the main body has
-- a with_clause on a child, which of course has an implicit with on its
-- parent. It's OK to traverse the child body if the main spec has been
-- processed, otherwise we also have a circularity to avoid.
procedure Do_Action (CU : Node_Id; Item : Node_Id);
-- Calls Action, with some validity checks
@ -1960,10 +1959,16 @@ package body Sem is
-- a package, the original file carries the body, and the spec
-- appears as a later entry in the units list.
-- Otherwise Bodies appear in the list only because of inlining
-- or instantiations, and they are processed only if relevant
-- to the main unit. The main unit itself is processed
-- separately after all other specs.
-- Otherwise bodies appear in the list only because of inlining
-- or instantiations, and they are processed only if relevant.
-- The flag Withed_Body on a context clause indicates that a
-- unit contains an instantiation that may be needed later,
-- and therefore the body that contains the generic body (and
-- its context) must be traversed immediately after the
-- corresponding spec (see Do_Unit_And_Dependents).
-- The main unit itself is processed separately after all other
-- specs, and relevant bodies are examined in Process_Main.
when N_Subprogram_Body =>
if Acts_As_Spec (N) then
@ -2181,6 +2186,8 @@ package body Sem is
pragma Assert (Nkind (CU) = N_Compilation_Unit);
Context_Item : Node_Id;
Lib_Unit : Node_Id;
Body_CU : Node_Id;
begin
Context_Item := First (Context_Items (CU));
@ -2189,7 +2196,28 @@ package body Sem is
and then (Include_Limited
or else not Limited_Present (Context_Item))
then
Action (Library_Unit (Context_Item));
Lib_Unit := Library_Unit (Context_Item);
Action (Lib_Unit);
-- If the context item indicates that a package body is needed
-- because of an instantiation in CU, traverse the body now,
-- even if CU is not related to the main unit.
if Present (Withed_Body (Context_Item))
and then Present (Corresponding_Body (Unit (Lib_Unit)))
then
Body_CU :=
Parent
(Unit_Declaration_Node
(Corresponding_Body (Unit (Lib_Unit))));
-- A body may have an implicit with on its own spec, in which
-- case we must ignore this context item to prevent looping.
if Unit (CU) /= Unit (Body_CU) then
Action (Body_CU);
end if;
end if;
end if;
Context_Item := Next (Context_Item);

View File

@ -8831,6 +8831,19 @@ package body Sem_Res is
then
null;
-- Finally, the expression may be a qualified expression whose
-- own expression is a possibly overloaded function call. The
-- qualified expression is needed to be disambiguate the call,
-- but it appears in a context in which a name is needed, forcing
-- the use of a conversion.
-- In Ada2012 a qualified expression is a name, and this idiom
-- is not needed any longer.
elsif Nkind (Orig_N) = N_Qualified_Expression
and then Nkind (Expression (Orig_N)) = N_Function_Call
then
null;
-- Here we give the redundant conversion warning. If it is an
-- entity, give the name of the entity in the message. If not,
-- just mention the expression.

View File

@ -1332,7 +1332,7 @@ package body Sprint is
Write_Str_With_Col_Check ("abstract ");
end if;
Write_Str_With_Col_Check_Sloc ("new ");
Write_Str_With_Col_Check ("new ");
-- Ada 2005 (AI-231)