aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2013-04-25 12:46:18 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2013-04-25 12:46:18 +0200
commit49eef89f35bccc18ff2da56be533eb50ea15a988 (patch)
treef5cfef2e64abc46844de433294eac569bd1690f1 /gcc
parent8b404dac662e36a1dcce3f48b06a04a13ab48fae (diff)
downloadgcc-49eef89f35bccc18ff2da56be533eb50ea15a988.zip
gcc-49eef89f35bccc18ff2da56be533eb50ea15a988.tar.gz
gcc-49eef89f35bccc18ff2da56be533eb50ea15a988.tar.bz2
[multiple changes]
2013-04-25 Robert Dewar <dewar@adacore.com> * sem_util.adb: Minor reformatting. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Expand_N_Aggregate): Use special circuitry to fold strings with a single others choice only if there are no expressions in the aggregate. 2013-04-25 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Update doc on Ada 2012 default mode. From-SVN: r198293
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog14
-rw-r--r--gcc/ada/exp_aggr.adb8
-rw-r--r--gcc/ada/gnat_ugn.texi34
-rw-r--r--gcc/ada/sem_util.adb16
4 files changed, 34 insertions, 38 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 1071a70..3ce1469 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,17 @@
+2013-04-25 Robert Dewar <dewar@adacore.com>
+
+ * sem_util.adb: Minor reformatting.
+
+2013-04-25 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Expand_N_Aggregate): Use special circuitry to
+ fold strings with a single others choice only if there are no
+ expressions in the aggregate.
+
+2013-04-25 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat_ugn.texi: Update doc on Ada 2012 default mode.
+
2013-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb: Add with and use clause for Stringt.
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index c4a80ef..e0a9132 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -5226,9 +5226,10 @@ package body Exp_Aggr is
else
-- A special case, if we have a string subtype with bounds 1 .. N,
-- where N is known at compile time, and the aggregate is of the
- -- form (others => 'x'), and N is less than 80 (an arbitrary limit
- -- for now), then replace the aggregate by the equivalent string
- -- literal (but do not mark it as static since it is not!)
+ -- form (others => 'x'), with a single choice and no expressions,
+ -- and N is less than 80 (an arbitrary limit for now), then replace
+ -- the aggregate by the equivalent string literal (but do not mark
+ -- it as static since it is not!)
-- Note: this entire circuit is redundant with respect to code in
-- Expand_Array_Aggregate that collapses others choices to positional
@@ -5262,6 +5263,7 @@ package body Exp_Aggr is
begin
if Nkind (First (Choices (CA))) = N_Others_Choice
and then Nkind (Expression (CA)) = N_Character_Literal
+ and then No (Expressions (N))
then
declare
T : constant Entity_Id := Etype (N);
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index 83608c6..af5209c 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -89,8 +89,6 @@ Texts. A copy of the license is included in the section entitled
@set FSFEDITION
@set EDITION GNAT
-@set DEFAULTLANGUAGEVERSION Ada 2005
-@set NONDEFAULTLANGUAGEVERSION Ada 95
@ifset unw
@set PLATFORM
@@ -237,15 +235,13 @@ toolset for the full Ada programming language.
It documents the features of the compiler and tools, and explains
how to use them to build Ada applications.
-@value{EDITION} implements Ada 95 and Ada 2005, and it may also be invoked in
-Ada 83 compatibility mode.
-By default, @value{EDITION} assumes @value{DEFAULTLANGUAGEVERSION},
-but you can override with a compiler switch
-(@pxref{Compiling Different Versions of Ada})
+@value{EDITION} implements Ada 95, Ada 2005 and Ada 2012, and it may also be
+invoked in Ada 83 compatibility mode.
+By default, @value{EDITION} assumes Ada 2012, but you can override with a
+compiler switch (@pxref{Compiling Different Versions of Ada})
to explicitly specify the language version.
Throughout this manual, references to ``Ada'' without a year suffix
-apply to both the Ada 95 and Ada 2005 versions of the language.
-
+apply to both all Ada 95/2005/2012 versions of the language.
@ifclear FSFEDITION
For ease of exposition, ``@value{EDITION}'' will be referred to simply as
@@ -253,8 +249,6 @@ For ease of exposition, ``@value{EDITION}'' will be referred to simply as
@end ifclear
-
-
@menu
* What This Guide Contains::
* What You Should Know before Reading This Guide::
@@ -6762,8 +6756,8 @@ and specifications where a separate body is present).
@noindent
The switches described in this section allow you to explicitly specify
the version of the Ada language that your programs are written in.
-By default @value{EDITION} assumes @value{DEFAULTLANGUAGEVERSION},
-but you can also specify @value{NONDEFAULTLANGUAGEVERSION} or
+The default mode is Ada 2012,
+but you can also specify Ada 95, Ada 2005 mode, or
indicate Ada 83 compatibility mode.
@table @option
@@ -6831,13 +6825,6 @@ may generally be compiled using this switch (see the description of the
@option{-gnat83} and @option{-gnat95} switches for further
information).
-@ifset PROEDITION
-Note that even though Ada 2005 is the current official version of the
-language, GNAT still compiles in Ada 95 mode by default, so if you are
-using Ada 2005 features in your program, you must use this switch (or
-the equivalent Ada_05 or Ada_2005 configuration pragmas).
-@end ifset
-
@item -gnat12 or -gnat2012 (Ada 2012 mode)
@cindex @option{-gnat12} (@command{gcc})
@cindex @option{-gnat2012} (@command{gcc})
@@ -6845,7 +6832,7 @@ the equivalent Ada_05 or Ada_2005 configuration pragmas).
@noindent
This switch directs the compiler to implement the Ada 2012 version of the
-language.
+language (also the default).
Since Ada 2012 is almost completely upwards
compatible with Ada 2005 (and thus also with Ada 83, and Ada 95),
Ada 83 and Ada 95 programs
@@ -6853,11 +6840,6 @@ may generally be compiled using this switch (see the description of the
@option{-gnat83}, @option{-gnat95}, and @option{-gnat05/2005} switches
for further information).
-For information about the approved ``Ada Issues'' that have been incorporated
-into Ada 2012, see @url{http://www.ada-auth.org/ais.html}.
-Included with GNAT releases is a file @file{features-ada12} that describes
-the set of implemented Ada 2012 features.
-
@item -gnatX (Enable GNAT Extensions)
@cindex @option{-gnatX} (@command{gcc})
@cindex Ada language extensions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 653a6ba..ab68c39 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -8891,10 +8891,10 @@ package body Sem_Util is
begin
Note_Possible_Modification (AV, Sure => True);
- -- We must reject parenthesized variable names. The check for
- -- Comes_From_Source is present because there are currently
- -- cases where the compiler violates this rule (e.g. passing
- -- a task object to its controlled Initialize routine).
+ -- We must reject parenthesized variable names. Comes_From_Source is
+ -- checked because there are currently cases where the compiler violates
+ -- this rule (e.g. passing a task object to its controlled Initialize
+ -- routine). This should be properly documented in sinfo???
if Paren_Count (AV) > 0 and then Comes_From_Source (AV) then
return False;
@@ -8907,15 +8907,13 @@ package body Sem_Util is
-- Unchecked conversions are allowed only if they come from the
-- generated code, which sometimes uses unchecked conversions for out
-- parameters in cases where code generation is unaffected. We tell
- -- source unchecked conversions by seeing if they are rewrites of an
- -- original Unchecked_Conversion function call, or of an explicit
+ -- source unchecked conversions by seeing if they are rewrites of
+ -- an original Unchecked_Conversion function call, or of an explicit
-- conversion of a function call or an aggregate (as may happen in the
-- expansion of a packed array aggregate).
elsif Nkind (AV) = N_Unchecked_Type_Conversion then
- if Nkind_In (Original_Node (AV),
- N_Function_Call, N_Aggregate)
- then
+ if Nkind_In (Original_Node (AV), N_Function_Call, N_Aggregate) then
return False;
elsif Comes_From_Source (AV)