[multiple changes]

2012-10-04  Vincent Celier  <celier@adacore.com>

	* prj-proc.adb (Process_Package_Declaration): Use project
	directory display path name as the value of 'Project_Dir.

2012-10-04  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be
	given by an arbitrary name, so copy the tree to make the call's actual.

2012-10-04  Robert Dewar  <dewar@adacore.com>

	* s-exnllf.adb, s-exnllf.ads: Minor reformatting.

2012-10-04  Thomas Quinot  <quinot@adacore.com>

	* exp_ch6.adb: Minor reformatting.

2012-10-04  Pascal Obry  <obry@adacore.com>

	* projects.texi: Use consistently @command{} when referencing
	commands. Fix typos.

From-SVN: r192068
This commit is contained in:
Arnaud Charlet 2012-10-04 11:05:53 +02:00
parent 3b78de5632
commit 4bb43ffbb8
7 changed files with 77 additions and 49 deletions

View File

@ -1,3 +1,26 @@
2012-10-04 Vincent Celier <celier@adacore.com>
* prj-proc.adb (Process_Package_Declaration): Use project
directory display path name as the value of 'Project_Dir.
2012-10-04 Gary Dismukes <dismukes@adacore.com>
* exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be
given by an arbitrary name, so copy the tree to make the call's actual.
2012-10-04 Robert Dewar <dewar@adacore.com>
* s-exnllf.adb, s-exnllf.ads: Minor reformatting.
2012-10-04 Thomas Quinot <quinot@adacore.com>
* exp_ch6.adb: Minor reformatting.
2012-10-04 Pascal Obry <obry@adacore.com>
* projects.texi: Use consistently @command{} when referencing
commands. Fix typos.
2012-10-03 Ed Schonberg <schonberg@adacore.com> 2012-10-03 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (New_Overloaded_Entity): call * sem_ch6.adb (New_Overloaded_Entity): call

View File

@ -1217,8 +1217,8 @@ package body Exp_Ch6 is
and then and then
Present (Effective_Extra_Accessibility (Entity (Lhs))) Present (Effective_Extra_Accessibility (Entity (Lhs)))
then then
-- Copyback target is an Ada 2012 stand-alone object -- Copyback target is an Ada 2012 stand-alone object of an
-- of an anonymous access type -- anonymous access type.
pragma Assert (Ada_Version >= Ada_2012); pragma Assert (Ada_Version >= Ada_2012);
@ -3046,7 +3046,7 @@ package body Exp_Ch6 is
Set_Last_Assignment (Ent, Sav); Set_Last_Assignment (Ent, Sav);
Set_Is_Known_Valid (Ent, False); Set_Is_Known_Valid (Ent, False);
-- For all other cases, just kill the current values -- For all other cases, just kill the current values
else else
Kill_Current_Values (Ent); Kill_Current_Values (Ent);
@ -3201,7 +3201,7 @@ package body Exp_Ch6 is
end; end;
end if; end if;
-- If we are expanding a rhs of an assignment we need to check if tag -- If we are expanding the RHS of an assignment we need to check if tag
-- propagation is needed. You might expect this processing to be in -- propagation is needed. You might expect this processing to be in
-- Analyze_Assignment but has to be done earlier (bottom-up) because the -- Analyze_Assignment but has to be done earlier (bottom-up) because the
-- assignment might be transformed to a declaration for an unconstrained -- assignment might be transformed to a declaration for an unconstrained
@ -4219,9 +4219,7 @@ package body Exp_Ch6 is
Ret : Node_Id; Ret : Node_Id;
begin begin
if Is_Entity_Name (N) if Is_Entity_Name (N) and then Present (Entity (N)) then
and then Present (Entity (N))
then
E := Entity (N); E := Entity (N);
if Is_Formal (E) if Is_Formal (E)

View File

@ -710,8 +710,11 @@ package body Exp_Util is
Subpool := Subpool_Handle_Name (Expr); Subpool := Subpool_Handle_Name (Expr);
end if; end if;
-- If a subpool is present it can be an arbitrary name, so make
-- the actual by copying the tree.
if Present (Subpool) then if Present (Subpool) then
Append_To (Actuals, New_Reference_To (Entity (Subpool), Loc)); Append_To (Actuals, New_Copy_Tree (Subpool, New_Sloc => Loc));
else else
Append_To (Actuals, Make_Null (Loc)); Append_To (Actuals, Make_Null (Loc));
end if; end if;

View File

@ -1588,7 +1588,7 @@ package body Prj.Proc is
Add_Attributes Add_Attributes
(Project, (Project,
Project.Name, Project.Name,
Name_Id (Project.Directory.Name), Name_Id (Project.Directory.Display_Name),
Shared, Shared,
Shared.Packages.Table (New_Pkg).Decl, Shared.Packages.Table (New_Pkg).Decl,
First_Attribute_Of First_Attribute_Of

View File

@ -1033,7 +1033,7 @@ names in lower case)
After building an application or a library it is often required to After building an application or a library it is often required to
install it into the development environment. This installation is install it into the development environment. This installation is
required if the library is to be used by another application for required if the library is to be used by another application for
example. The @code{gprinstall} tool provide an easy way to install example. The @command{gprinstall} tool provide an easy way to install
libraries, executable or object code generated durting the build. The libraries, executable or object code generated durting the build. The
@b{Install} package can be used to change the default locations. @b{Install} package can be used to change the default locations.
@ -1963,11 +1963,10 @@ included in the library.
@c --------------------------------------------- @c ---------------------------------------------
@noindent @noindent
When using project files, library installation is part of the library build When using project files, a usable version of the library is created in the
process. Thus no further action is needed in order to make use of the directory specified by the @code{Library_Dir} attribute of the library
libraries that are built as part of the general application build. A usable project file. Thus no further action is needed in order to make use of
version of the library is installed in the directory specified by the the libraries that are built as part of the general application build.
@code{Library_Dir} attribute of the library project file.
You may want to install a library in a context different from where the library You may want to install a library in a context different from where the library
is built. This situation arises with third party suppliers, who may want is built. This situation arises with third party suppliers, who may want
@ -1976,6 +1975,12 @@ able to recompile the library. The simplest option in this case is to provide
a project file slightly different from the one used to build the library, by a project file slightly different from the one used to build the library, by
using the @code{externally_built} attribute. @ref{Using Library Projects} using the @code{externally_built} attribute. @ref{Using Library Projects}
Another option is to use @command{gprinstall} to install the library in a
different context than the build location. A project to use this library is
generated automatically by @command{gprinstall} which also copy, in the install
location, the minimum set of sources needed to use the library.
@ref{Installation}
@c --------------------------------------------- @c ---------------------------------------------
@node Project Extension @node Project Extension
@section Project Extension @section Project Extension
@ -2243,8 +2248,8 @@ Very often, modules will build their own executables (for testing
purposes for instance), or libraries (for easier reuse in various purposes for instance), or libraries (for easier reuse in various
contexts). contexts).
However, if you build your project through gnatmake or gprbuild, using However, if you build your project through @command{gnatmake} or
a syntax similar to @command{gprbuild}, using a syntax similar to
@smallexample @smallexample
gprbuild -PA.gpr gprbuild -PA.gpr
@ -2252,9 +2257,9 @@ a syntax similar to
this will only rebuild the main programs of project A, not those of the this will only rebuild the main programs of project A, not those of the
imported projects B and C. Therefore you have to spawn several imported projects B and C. Therefore you have to spawn several
gnatmake commands, one per project, to build all executables. @command{gnatmake} commands, one per project, to build all executables.
This is a little inconvenient, but more importantly is inefficient This is a little inconvenient, but more importantly is inefficient
because gnatmake needs to do duplicate work to ensure that sources are because @command{gnatmake} needs to do duplicate work to ensure that sources are
up-to-date, and cannot easily compile things in parallel when using up-to-date, and cannot easily compile things in parallel when using
the -j switch. the -j switch.
@ -2295,14 +2300,14 @@ that are built independently from each other (but can be built in
parallel). For instance, you have a project tree rooted at A, and parallel). For instance, you have a project tree rooted at A, and
another one (which might share some subprojects) rooted at B. another one (which might share some subprojects) rooted at B.
Using only gprbuild, you could do Using only @command{gprbuild}, you could do
@smallexample @smallexample
gprbuild -PA.gpr gprbuild -PA.gpr
gprbuild -PB.gpr gprbuild -PB.gpr
@end smallexample @end smallexample
to build both. But again, gprbuild has to do some duplicate work for to build both. But again, @command{gprbuild} has to do some duplicate work for
those files that are shared between the two, and cannot truly build those files that are shared between the two, and cannot truly build
things in parallel efficiently. things in parallel efficiently.
@ -2316,7 +2321,7 @@ sources.
This scenario is particularly useful in environments like VxWorks 653 This scenario is particularly useful in environments like VxWorks 653
where the applications running in the multiple partitions can be built where the applications running in the multiple partitions can be built
in parallel through a single gprbuild command. This also works nicely in parallel through a single @command{gprbuild} command. This also works nicely
with Annex E. with Annex E.
@c --------------------------------------------- @c ---------------------------------------------
@ -2324,9 +2329,9 @@ with Annex E.
@subsection Define a build environment @subsection Define a build environment
@c --------------------------------------------- @c ---------------------------------------------
The environment variables at the time you launch gprbuild or gprbuild The environment variables at the time you launch @command{gprbuild} or
will influence the view these tools have of the project (PATH to find @command{gnatmake} will influence the view these tools have of the project
the compiler, ADA_PROJECT_PATH or GPR_PROJECT_PATH to find the (PATH to find the compiler, ADA_PROJECT_PATH or GPR_PROJECT_PATH to find the
projects, environment variables that are referenced in project files projects, environment variables that are referenced in project files
through the "external" statement,...). Several command line switches through the "external" statement,...). Several command line switches
can be used to override those (-X or -aP), but on some systems and can be used to override those (-X or -aP), but on some systems and
@ -2382,19 +2387,19 @@ end MyProject;
@subsection Performance improvements in builder @subsection Performance improvements in builder
@c -------------------------------------------- @c --------------------------------------------
The loading of aggregate projects is optimized in gprbuild and The loading of aggregate projects is optimized in @command{gprbuild} and
gnatmake, so that all files are searched for only once on the disk @command{gnatmake}, so that all files are searched for only once on the disk
(thus reducing the number of system calls and contributing to faster (thus reducing the number of system calls and contributing to faster
compilation times especially on systems with sources on remote compilation times especially on systems with sources on remote
servers). As part of the loading, gprbuild and gnatmake compute how servers). As part of the loading, @command{gprbuild} and @command{gnatmake}
and where a source file should be compiled, and even if it is found compute how and where a source file should be compiled, and even if it is found
several times in the aggregated projects it will be compiled only several times in the aggregated projects it will be compiled only
once. once.
Since there is no ambiguity as to which switches should be used, files Since there is no ambiguity as to which switches should be used, files
can be compiled in parallel (through the usual -j switch) and this can can be compiled in parallel (through the usual -j switch) and this can
be done while maximizing the use of CPUs (compared to launching be done while maximizing the use of CPUs (compared to launching
multiple gprbuild and gnatmake commands in parallel). multiple @command{gprbuild} and @command{gnatmake} commands in parallel).
@c ------------------------------------- @c -------------------------------------
@node Syntax of aggregate projects @node Syntax of aggregate projects
@ -2577,15 +2582,15 @@ These override the value given by the attribute, so that
users can override the value set in the (presumably shared users can override the value set in the (presumably shared
with others in his team) aggregate project. with others in his team) aggregate project.
@item The -X command line switch to gprbuild and gnatmake @item The -X command line switch to @command{gprbuild} and @command{gnatmake}
This always takes precedence. This always takes precedence.
@end itemize @end itemize
This attribute is only taken into account in the main aggregate This attribute is only taken into account in the main aggregate
project (i.e. the one specified on the command line to gprbuild or project (i.e. the one specified on the command line to @command{gprbuild} or
natmake), and ignored in other aggregate projects. It is invalid @command{gnatmake}), and ignored in other aggregate projects. It is invalid
in standard projects. in standard projects.
The goal is to have a consistent value in all The goal is to have a consistent value in all
projects that are built through the aggregate, which would not projects that are built through the aggregate, which would not
@ -2610,8 +2615,8 @@ are valid:
@item @b{Switches}: @item @b{Switches}:
@cindex @code{Switches} @cindex @code{Switches}
This attribute gives the list of switches to use for the builder This attribute gives the list of switches to use for the builder
(gprbuild or gnatmake), depending on the language of the main file. (@command{gprbuild} or @command{gnatmake}), depending on the language of the
For instance, main file. For instance,
@smallexample @c projectfile @smallexample @c projectfile
for Switches ("Ada") use ("-d", "-p"); for Switches ("Ada") use ("-d", "-p");
@ -2995,7 +3000,7 @@ from other project or library project files.
@item @b{library}: a library project must declare both attributes @item @b{library}: a library project must declare both attributes
@code{Library_Name} and @code{Library_Dir}. @code{Library_Name} and @code{Library_Dir}.
@item @b{configuration}: a configuration project cannot be in a project tree. @item @b{configuration}: a configuration project cannot be in a project tree.
It describes compilers and other tools to @code{gprbuild}. It describes compilers and other tools to @command{gprbuild}.
@end table @end table
@c --------------------------------------------- @c ---------------------------------------------
@ -3263,7 +3268,7 @@ Here are some specific examples:
@noindent @noindent
An external value is an expression whose value is obtained from the command An external value is an expression whose value is obtained from the command
that invoked the processing of the current project file (typically a that invoked the processing of the current project file (typically a
gnatmake or gprbuild command). @command{gnatmake} or @command{gprbuild} command).
There are two kinds of external values, one that returns a single string, and There are two kinds of external values, one that returns a single string, and
one that returns a string list. one that returns a string list.
@ -3878,11 +3883,12 @@ Follow all symbolic links when processing project files.
@item ^--subdirs^/SUBDIRS^=<subdir> @item ^--subdirs^/SUBDIRS^=<subdir>
@cindex @option{^--subdirs^/SUBDIRS^=} (gnatmake and gnatclean) @cindex @option{^--subdirs^/SUBDIRS^=} (gnatmake and gnatclean)
This switch is recognized by gnatmake and gnatclean. It indicate that the real This switch is recognized by @command{gnatmake} and @command{gnatclean}. It
directories (except the source directories) are the subdirectories <subdir> indicate that the real directories (except the source directories) are the
of the directories specified in the project files. This applies in particular subdirectories <subdir> of the directories specified in the project files.
to object directories, library directories and exec directories. If the This applies in particular to object directories, library directories and
subdirectories do not exist, they are created automatically. exec directories. If the subdirectories do not exist, they are created
automatically.
@end table @end table
@ -4592,7 +4598,7 @@ e.g.@: @code{"wtx"} or @code{"vxworks"}.
This is an associative array attribute, whose domain is a language name. Its This is an associative array attribute, whose domain is a language name. Its
value is string that denotes the command to be used to invoke the compiler. value is string that denotes the command to be used to invoke the compiler.
The value of @code{Compiler_Command ("Ada")} is expected to be compatible with The value of @code{Compiler_Command ("Ada")} is expected to be compatible with
gnatmake, in particular in the handling of switches. @command{gnatmake}, in particular in the handling of switches.
@item Debugger_Command @item Debugger_Command
This is simple attribute, Its value is a string that specifies the name of This is simple attribute, Its value is a string that specifies the name of

View File

@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2009 Free Software Foundation, Inc. -- -- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
@ -37,8 +37,7 @@ package body System.Exn_LLF is
function Exn_Long_Long_Float function Exn_Long_Long_Float
(Left : Long_Long_Float; (Left : Long_Long_Float;
Right : Integer) Right : Integer) return Long_Long_Float
return Long_Long_Float
is is
Result : Long_Long_Float := 1.0; Result : Long_Long_Float := 1.0;
Factor : Long_Long_Float := Left; Factor : Long_Long_Float := Left;

View File

@ -6,7 +6,7 @@
-- -- -- --
-- S p e c -- -- S p e c --
-- -- -- --
-- Copyright (C) 1992-2009 Free Software Foundation, Inc. -- -- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
@ -36,7 +36,6 @@ package System.Exn_LLF is
function Exn_Long_Long_Float function Exn_Long_Long_Float
(Left : Long_Long_Float; (Left : Long_Long_Float;
Right : Integer) Right : Integer) return Long_Long_Float;
return Long_Long_Float;
end System.Exn_LLF; end System.Exn_LLF;