aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-08-01 15:28:35 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2014-08-01 15:28:35 +0200
commit4b259b2d0605d3da3357b46a35bd7ec92b1aaee1 (patch)
treecdf8ec1f9468fa7640be395895350c0363b5326d
parent12c5f1efb5d038d8638f517b8d73970573fbdaee (diff)
downloadgcc-4b259b2d0605d3da3357b46a35bd7ec92b1aaee1.zip
gcc-4b259b2d0605d3da3357b46a35bd7ec92b1aaee1.tar.gz
gcc-4b259b2d0605d3da3357b46a35bd7ec92b1aaee1.tar.bz2
[multiple changes]
2014-08-01 Vincent Celier <celier@adacore.com> * debug.adb: Minor documentation addition for -dn switch. 2014-08-01 Robert Dewar <dewar@adacore.com> * sem_aggr.adb, exp_ch9.adb, sem_prag.adb, sem_util.adb, sem_attr.adb, sem_eval.ads, sem_cat.adb, sem_ch13.adb: Improve documentation of Is_Static_Expression vs Is_OK_Static_Expression. In several places, use the Is_OK version as suggested by the spec. 2014-08-01 Vincent Celier <celier@adacore.com> * gnatcmd.adb: Revert last change which was not correct. 2014-08-01 Hristian Kirtchev <kirtchev@adacore.com> * freeze.adb (Find_Constant): Ensure that the constant being inspected is still an object declaration (i.e. not a renaming). From-SVN: r213458
-rw-r--r--gcc/ada/ChangeLog20
-rw-r--r--gcc/ada/debug.adb10
-rw-r--r--gcc/ada/exp_ch9.adb2
-rw-r--r--gcc/ada/freeze.adb9
-rw-r--r--gcc/ada/gnatcmd.adb9
-rw-r--r--gcc/ada/sem_aggr.adb2
-rw-r--r--gcc/ada/sem_eval.ads7
-rw-r--r--gcc/ada/sem_prag.adb2
-rw-r--r--gcc/ada/sem_util.adb2
9 files changed, 48 insertions, 15 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index aa4d49c..d29f0201 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,23 @@
+2014-08-01 Vincent Celier <celier@adacore.com>
+
+ * debug.adb: Minor documentation addition for -dn switch.
+
+2014-08-01 Robert Dewar <dewar@adacore.com>
+
+ * sem_aggr.adb, exp_ch9.adb, sem_prag.adb, sem_util.adb,
+ sem_attr.adb, sem_eval.ads, sem_cat.adb, sem_ch13.adb: Improve
+ documentation of Is_Static_Expression vs Is_OK_Static_Expression.
+ In several places, use the Is_OK version as suggested by the spec.
+
+2014-08-01 Vincent Celier <celier@adacore.com>
+
+ * gnatcmd.adb: Revert last change which was not correct.
+
+2014-08-01 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * freeze.adb (Find_Constant): Ensure that the constant being
+ inspected is still an object declaration (i.e. not a renaming).
+
2014-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Loop_Parameter_Specification): a)
diff --git a/gcc/ada/debug.adb b/gcc/ada/debug.adb
index 715e44a..94da7a6 100644
--- a/gcc/ada/debug.adb
+++ b/gcc/ada/debug.adb
@@ -791,15 +791,15 @@ package body Debug is
-- dm Issue a message indicating the maximum number of simultaneous
-- compilations.
- -- Equivalent to --keep-temp-files.
-- dn Do not delete temporary files created by gnatmake at the end
-- of execution, such as temporary config pragma files, mapping
- -- files or project path files.
+ -- files or project path files. This debug switch is equivalent to
+ -- the standard switch --keep-temp-files. We retain the debug switch
+ -- for back compatibility with past usage.
-- dp Prints the Q used by routine Make.Compile_Sources every time
-- we go around the main compile loop of Make.Compile_Sources
- -- Equivalent to --keep-temp-files.
-- dq Prints source files as they are enqueued and dequeued in the Q
-- used by routine Make.Compile_Sources. Useful to figure out the
@@ -822,7 +822,9 @@ package body Debug is
-- dn Do not delete temporary files created by gprbuild at the end
-- of execution, such as temporary config pragma files, mapping
- -- files or project path files.
+ -- files or project path files. This debug switch is equivalent to
+ -- the standard switch --keep-temp-files. We retain the debug switch
+ -- for back compatibility with past usage.
-- dt When a time stamp mismatch has been found for an ALI file,
-- display the source file name, the time stamp expected and
diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb
index d01e849..e42c187 100644
--- a/gcc/ada/exp_ch9.adb
+++ b/gcc/ada/exp_ch9.adb
@@ -8929,7 +8929,7 @@ package body Exp_Ch9 is
function Non_Static_Bound (Bound : Node_Id) return Boolean is
begin
- if Is_Static_Expression (Bound) then
+ if Is_OK_Static_Expression (Bound) then
return False;
elsif Is_Entity_Name (Bound)
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 9332930..b59e6ec 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -1256,12 +1256,19 @@ package body Freeze is
function Find_Constant (Nod : Node_Id) return Traverse_Result is
begin
+ -- When a constant is initialized with the result of a dispatching
+ -- call, the constant declaration is rewritten as a renaming of the
+ -- displaced function result. This scenario is not a premature use of
+ -- a constant even though the Has_Completion flag is not set.
+
if Is_Entity_Name (Nod)
and then Present (Entity (Nod))
and then Ekind (Entity (Nod)) = E_Constant
+ and then Scope (Entity (Nod)) = Current_Scope
+ and then Nkind (Declaration_Node (Entity (Nod))) =
+ N_Object_Declaration
and then not Is_Imported (Entity (Nod))
and then not Has_Completion (Entity (Nod))
- and then Scope (Entity (Nod)) = Current_Scope
then
Error_Msg_NE
("premature use of& in call or instance", N, Entity (Nod));
diff --git a/gcc/ada/gnatcmd.adb b/gcc/ada/gnatcmd.adb
index 2e5bade..77cf6dc 100644
--- a/gcc/ada/gnatcmd.adb
+++ b/gcc/ada/gnatcmd.adb
@@ -47,6 +47,7 @@ with Snames; use Snames;
with Stringt;
with Switch; use Switch;
with Table;
+with Targparm; use Targparm;
with Tempdir;
with Types; use Types;
@@ -57,9 +58,6 @@ with Ada.Text_IO; use Ada.Text_IO;
with GNAT.OS_Lib; use GNAT.OS_Lib;
procedure GNATCmd is
-
- AAMP_On_Target : Boolean := False;
-
Normal_Exit : exception;
-- Raise this exception for normal program termination
@@ -1185,7 +1183,7 @@ procedure GNATCmd is
-- No usage for Sync
if C /= Sync then
- if AAMP_On_Target then
+ if Targparm.AAMP_On_Target then
Put ("gnaampcmd ");
else
Put ("gnat ");
@@ -1590,7 +1588,8 @@ begin
-- to handle the mapping of GNAAMP tool names. We don't extract it from
-- system.ads, as there may be no default runtime.
- AAMP_On_Target := To_Lower (Command_Name) = "gnaampcmd";
+ Find_Program_Name;
+ AAMP_On_Target := Name_Buffer (1 .. Name_Len) = "gnaampcmd";
-- 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.
diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb
index e5e236b..2c450c5 100644
--- a/gcc/ada/sem_aggr.adb
+++ b/gcc/ada/sem_aggr.adb
@@ -1732,7 +1732,7 @@ package body Sem_Aggr is
("subtype& has dynamic predicate, not allowed "
& "in aggregate choice", Choice, E);
- elsif not Is_Static_Subtype (E) then
+ elsif not Is_OK_Static_Subtype (E) then
Error_Msg_NE
("non-static subtype& has predicate, not allowed "
& "in aggregate choice", Choice, E);
diff --git a/gcc/ada/sem_eval.ads b/gcc/ada/sem_eval.ads
index 64d2529..72d0c99 100644
--- a/gcc/ada/sem_eval.ads
+++ b/gcc/ada/sem_eval.ads
@@ -52,7 +52,12 @@ package Sem_Eval is
-- Is_Static_Expression
-- This flag is set on any expression that is static according to the
- -- rules in (RM 4.9(3-32)).
+ -- rules in (RM 4.9(3-32)). This flag should be tested during testing
+ -- of legality of parts of a larger static expression. For all other
+ -- contexts that require static expressions, use the separate predicate
+ -- Is_OK_Static_Expression, since an expression that meets the RM 4.9
+ -- requirements, but raises a constraint error when evaluated in a non-
+ -- static context does not meet the legality requirements.
-- Raises_Constraint_Error
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index adcad24..da08930 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -17757,7 +17757,7 @@ package body Sem_Prag is
Preanalyze_Spec_Expression (Arg, RTE (RE_Any_Priority));
- if not Is_Static_Expression (Arg) then
+ if not Is_OK_Static_Expression (Arg) then
Check_Restriction (Static_Priorities, Arg);
end if;
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 6c385e0..66967be 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -814,7 +814,7 @@ package body Sem_Util is
if Nkind (Parent (N)) = N_Loop_Parameter_Specification
and then not Has_Dynamic_Predicate_Aspect (Typ)
- and then Is_Static_Subtype (Typ)
+ and then Is_OK_Static_Subtype (Typ)
then
return;
end if;