[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 2 May 2016 10:10:01 +0000 (12:10 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 2 May 2016 10:10:01 +0000 (12:10 +0200)
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

* exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
fixes.
* sem_prag.adb, sem_ch12.adb: Minor typo fixes.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
function call may be wrapped in an explicit type conversion.

2016-05-02  Jerome Lambourg  <lambourg@adacore.com>

* interfac.ads: use pragma No_Elaboration_Code_All.
* s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem.adb (Analyze: If node is an error node previously created
by the parser, disable expansion to prevent subsequent glitches
in error recovery.

From-SVN: r235736

15 files changed:
gcc/ada/ChangeLog
gcc/ada/checks.adb
gcc/ada/exp_ch5.adb
gcc/ada/exp_ch6.adb
gcc/ada/exp_ch7.adb
gcc/ada/exp_ch7.ads
gcc/ada/gnat1drv.adb
gcc/ada/interfac.ads
gcc/ada/s-unstyp.ads
gcc/ada/sem.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_ch12.adb
gcc/ada/sem_ch13.adb
gcc/ada/sem_ch4.adb
gcc/ada/sem_prag.adb

index 8d6e8ef919122d5c35da7bcdabf6700b638de318..7116d1d0a81bb8305cdf3d410ccf2fb52301ef41 100644 (file)
@@ -1,3 +1,26 @@
+2016-05-02  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
+       gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
+       fixes.
+       * sem_prag.adb, sem_ch12.adb: Minor typo fixes.
+
+2016-05-02  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
+       function call may be wrapped in an explicit type conversion.
+
+2016-05-02  Jerome Lambourg  <lambourg@adacore.com>
+
+       * interfac.ads: use pragma No_Elaboration_Code_All.
+       * s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.
+
+2016-05-02  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem.adb (Analyze: If node is an error node previously created
+       by the parser, disable expansion to prevent subsequent glitches
+       in error recovery.
+
 2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
 
        * sem_ch13.adb (Alignment_Error): Removed.
index 7091b78f3586658dc8d60ac0dd7f077f0ad8ec6b..ed0a0adb10f90ddd165a0b8032045164b1bc456c 100644 (file)
@@ -2713,7 +2713,7 @@ package body Checks is
                  Make_Predicate_Check
                    (Typ, New_Occurrence_Of (Entity (N), Sloc (N))));
 
-            --  If the expression is not an entity it may have side-effects,
+            --  If the expression is not an entity it may have side effects,
             --  and the following call will create an object declaration for
             --  it. We disable checks during its analysis, to prevent an
             --  infinite recursion.
@@ -6195,8 +6195,8 @@ package body Checks is
       --  twice (once for the check, once for the actual reference). Such a
       --  double evaluation is always a potential source of inefficiency, and
       --  is functionally incorrect in the volatile case, or when the prefix
-      --  may have side-effects. A non-volatile entity or a component of a
-      --  non-volatile entity requires no evaluation.
+      --  may have side effects. A nonvolatile entity or a component of a
+      --  nonvolatile entity requires no evaluation.
 
       if Is_Entity_Name (Pref) then
          if Treat_As_Volatile (Entity (Pref)) then
@@ -6418,7 +6418,7 @@ package body Checks is
                   Set_Do_Range_Check (Sub, False);
 
                   --  Force evaluation except for the case of a simple name of
-                  --  a non-volatile entity.
+                  --  a nonvolatile entity.
 
                   if not Is_Entity_Name (Sub)
                     or else Treat_As_Volatile (Entity (Sub))
index 5012f32c7434f3f5aca1f44c8b406ff5fe571764..2a3ecbfe39bc5a0fa949089ee14a5c369b38a60f 100644 (file)
@@ -2017,7 +2017,7 @@ package body Exp_Ch5 is
       --  Ada 2012 (AI05-148): Update current accessibility level if Rhs is a
       --  stand-alone obj of an anonymous access type. Do not install the check
       --  when the Lhs denotes a container cursor and the Next function employs
-      --  an access type because this may never result in a dangling pointer.
+      --  an access type, because this can never result in a dangling pointer.
 
       if Is_Access_Type (Typ)
         and then Is_Entity_Name (Lhs)
index ad68f898f6c8ef577d7c6dc94a8eebeb773d9e12..8d0b96309fe98b02cf0be3e789e28f7f1bf4ec38 100644 (file)
@@ -7241,6 +7241,7 @@ package body Exp_Ch6 is
 
       if Nkind_In (Func_Call,
                    N_Qualified_Expression,
+                   N_Type_Conversion,
                    N_Unchecked_Type_Conversion)
       then
          Func_Call := Expression (Func_Call);
index 8f498accf7956fca90ede9e34380894ec0d2cd12..a166b80b12a85992e5eb31c7a3a8fe6d271f5773 100644 (file)
@@ -625,7 +625,7 @@ package body Exp_Ch7 is
 
          --  Associate the anonymous master with the designated type. This
          --  ensures that any additional anonymous access types with the same
-         --  designated type will share the same anonymous paster within the
+         --  designated type will share the same anonymous master within the
          --  same unit.
 
          Set_Anonymous_Master (Desig_Typ, FM_Id);
@@ -2409,7 +2409,7 @@ package body Exp_Ch7 is
 
          Init_Typ : Entity_Id;
          --  The initialization type of the related object declaration. Note
-         --  that this is not necessarely the same type as Obj_Typ because of
+         --  that this is not necessarily the same type as Obj_Typ because of
          --  possible type derivations.
 
          Obj_Typ : Entity_Id;
index 3136934378115671abdf2c8b3b959b07fcaefcd8..b12af836f63f2ff28d3dc4ccf90ab0547ebcf200 100644 (file)
@@ -109,7 +109,7 @@ package Exp_Ch7 is
       Context_Scope  : Entity_Id := Empty;
       Insertion_Node : Node_Id   := Empty);
    --  Build a finalization master for an access type. The designated type may
-   --  not necessarely be controlled or need finalization actions depending on
+   --  not necessarily be controlled or need finalization actions depending on
    --  the context. Flag For_Lib_Level must be set when creating a master for a
    --  build-in-place function call access result type. Flag For_Private must
    --  be set when the designated type contains a private component. Parameters
index fdf8c8a086ab51ee283f3f723cb0317d2765a739..02950a5992655940372a2bc493d23f707271ad62 100644 (file)
@@ -96,10 +96,10 @@ procedure Gnat1drv is
    --  Kind of main compilation unit node
 
    Back_End_Mode : Back_End.Back_End_Mode_Type;
-   --  Record back end mode
+   --  Record back-end mode
 
    procedure Adjust_Global_Switches;
-   --  There are various interactions between front end switch settings,
+   --  There are various interactions between front-end switch settings,
    --  including debug switch settings and target dependent parameters.
    --  This procedure takes care of properly handling these interactions.
    --  We do it after scanning out all the switches, so that we are not
@@ -350,7 +350,7 @@ procedure Gnat1drv is
          Force_ALI_Tree_File := True;
          Try_Semantics := True;
 
-         --  Make the Ada front-end more liberal so that the compiler will
+         --  Make the Ada front end more liberal so that the compiler will
          --  allow illegal code that is allowed by other compilers. CodePeer
          --  is in the business of finding problems, not enforcing rules.
          --  This is useful when using CodePeer mode with other compilers.
@@ -527,7 +527,7 @@ procedure Gnat1drv is
          Ttypes.Bytes_Big_Endian := not Ttypes.Bytes_Big_Endian;
       end if;
 
-      --  Activate front end layout if debug flag -gnatdF is set
+      --  Activate front-end layout if debug flag -gnatdF is set
 
       if Debug_Flag_FF then
          Targparm.Frontend_Layout_On_Target := True;
@@ -668,31 +668,31 @@ procedure Gnat1drv is
          Front_End_Inlining := AAMP_On_Target or Generate_C_Code;
       end if;
 
-      --  Set back end inlining indication
+      --  Set back-end inlining indication
 
       Back_End_Inlining :=
 
-        --  No back end inlining available on AAMP
+        --  No back-end inlining available on AAMP
 
         not AAMP_On_Target
 
-        --  No back end inlining available on C generation
+        --  No back-end inlining available on C generation
 
         and then not Generate_C_Code
 
-        --  No back end inlining in GNATprove mode, since it just confuses
+        --  No back-end inlining in GNATprove mode, since it just confuses
         --  the formal verification process.
 
         and then not GNATprove_Mode
 
-        --  No back end inlining if front end inlining explicitly enabled.
+        --  No back-end inlining if front-end inlining explicitly enabled.
         --  Done to minimize the output differences to customers still using
         --  this deprecated switch; in addition, this behavior reduces the
         --  output differences in old tests.
 
         and then not Front_End_Inlining
 
-        --  Back end inlining is disabled if debug flag .z is set
+        --  Back-end inlining is disabled if debug flag .z is set
 
         and then not Debug_Flag_Dot_Z;
 
@@ -1318,13 +1318,13 @@ begin
       --  as indicated by Back_Annotate_Rep_Info being set to True.
 
       --  We don't call for annotations on a subunit, because to process those
-      --  the back-end requires that the parent(s) be properly compiled.
+      --  the back end requires that the parent(s) be properly compiled.
 
       --  Annotation is suppressed for targets where front-end layout is
       --  enabled, because the front end determines representations.
 
-      --  The back-end is not invoked in ASIS mode with GNSA because all type
-      --  representation information will be provided by the GNSA back-end, not
+      --  The back end is not invoked in ASIS mode with GNSA because all type
+      --  representation information will be provided by the GNSA back end, not
       --  gigi.
 
       if Back_End_Mode = Declarations_Only
index 2c501a2dd280d333499270bf71679a92a8453f9b..3bda2f4665185354dabca9bae09b9f2d677f9c78 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2002-2015, Free Software Foundation, Inc.         --
+--          Copyright (C) 2002-2016, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -36,6 +36,7 @@
 pragma Compiler_Unit_Warning;
 
 package Interfaces is
+   pragma No_Elaboration_Code_All;
    pragma Pure;
 
    --  All identifiers in this unit are implementation defined
index 9eefc15b59c679ddb8072efdd23fbb0ed8a21108..9a02704485ded24c2163efdf77d92d7416b1b959 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2016, 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- --
@@ -39,6 +39,7 @@ pragma Compiler_Unit_Warning;
 
 package System.Unsigned_Types is
    pragma Pure;
+   pragma No_Elaboration_Code_All;
 
    type Short_Short_Unsigned is mod 2 ** Short_Short_Integer'Size;
    type Short_Unsigned       is mod 2 ** Short_Integer'Size;
index 36c62983298ddd2bd86396ba498fca160400315c..3cd073082a9023fb27eb049d79fc2b38ac15d9d5 100644 (file)
@@ -618,8 +618,11 @@ package body Sem is
 
          --  A call to analyze the error node is simply ignored, to avoid
          --  causing cascaded errors (happens of course only in error cases)
+         --  Disable expansion in case it is still enabled, to prevent other
+         --  subsequent compiler glitches.
 
          when N_Error =>
+            Expander_Mode_Save_And_Set (False);
             null;
 
          --  Push/Pop nodes normally don't come through an analyze call. An
index 6d8f8fcb3a1098fc9ad0a1d7443fe543c5bf7997..30d33d213e2a85e51aa59e72efbc180860588519 100644 (file)
@@ -4975,9 +4975,9 @@ package body Sem_Attr is
             --  and does not suffer from the out-of-order issue described
             --  above. Thus, this expansion is skipped in SPARK mode.
 
-            --  THe expansion is not relevant for discrete types, that will
-            --  not generate extra declarations, and where use of the base
-            --  type may lead to spurious errors if context is a case.
+            --  The expansion is not relevant for discrete types, which will
+            --  not generate extra declarations, and where use of the base type
+            --  may lead to spurious errors if context is a case.
 
             if not GNATprove_Mode then
                if not Is_Discrete_Type (Pref_Typ) then
index 699ad690892a28e1f1034d79be2c9a6603fa9fdc..04b7fb4d3928db87143728ed9a954efe7b8cdd2f 100644 (file)
@@ -7908,7 +7908,7 @@ package body Sem_Ch12 is
       end loop;
 
       --  Expanded code usually shares the source location of the original
-      --  construct it was generated for. This however may not necessarely
+      --  construct it was generated for. This however may not necessarily
       --  reflect the true location of the code within the tree.
 
       --  Before comparing the slocs of the two nodes, make sure that we are
index 73fecfcbf3bbc4863b87df3df8aac943f782dbb0..2354cde9e01d8aacc2f04f91fbc9c5fd6b84acd9 100644 (file)
@@ -5023,7 +5023,7 @@ package body Sem_Ch13 is
                --  Tagged type case, check for attempt to set alignment to a
                --  value greater than Max_Align, and reset if so. This error
                --  is suppressed in ASIS mode to allow for different ASIS
-               --  back-ends or ASIS-based tools to query the illegal clause.
+               --  back ends or ASIS-based tools to query the illegal clause.
 
                if Is_Tagged_Type (U_Ent)
                  and then Align > Max_Align
@@ -5465,7 +5465,7 @@ package body Sem_Ch13 is
                   Set_Machine_Radix_10 (U_Ent);
 
                --  The following error is suppressed in ASIS mode to allow for
-               --  different ASIS back-ends or ASIS-based tools to query the
+               --  different ASIS back ends or ASIS-based tools to query the
                --  illegal clause.
 
                elsif not ASIS_Mode then
@@ -5497,7 +5497,7 @@ package body Sem_Ch13 is
                Check_Size (Expr, U_Ent, Size, Biased);
 
                --  The following errors are suppressed in ASIS mode to allow
-               --  for different ASIS back-ends or ASIS-based tools to query
+               --  for different ASIS back ends or ASIS-based tools to query
                --  the illegal clause.
 
                if ASIS_Mode then
@@ -5714,7 +5714,7 @@ package body Sem_Ch13 is
 
                else
                   --  The following error is suppressed in ASIS mode to allow
-                  --  for different ASIS back-ends or ASIS-based tools to query
+                  --  for different ASIS back ends or ASIS-based tools to query
                   --  the illegal clause.
 
                   if Is_Elementary_Type (Etyp)
@@ -6044,7 +6044,7 @@ package body Sem_Ch13 is
             elsif Is_Elementary_Type (U_Ent) then
 
                --  The following errors are suppressed in ASIS mode to allow
-               --  for different ASIS back-ends or ASIS-based tools to query
+               --  for different ASIS back ends or ASIS-based tools to query
                --  the illegal clause.
 
                if ASIS_Mode then
@@ -10902,7 +10902,7 @@ package body Sem_Ch13 is
       procedure Size_Too_Small_Error (Min_Siz : Uint) is
       begin
          --  This error is suppressed in ASIS mode to allow for different ASIS
-         --  back-ends or ASIS-based tools to query the illegal clause.
+         --  back ends or ASIS-based tools to query the illegal clause.
 
          if not ASIS_Mode then
             Error_Msg_Uint_1 := Min_Siz;
@@ -11560,7 +11560,7 @@ package body Sem_Ch13 is
       elsif Align <= 0 then
 
          --  This error is suppressed in ASIS mode to allow for different ASIS
-         --  back-ends or ASIS-based tools to query the illegal clause.
+         --  back ends or ASIS-based tools to query the illegal clause.
 
          if not ASIS_Mode then
             Error_Msg_N ("alignment value must be positive", Expr);
@@ -11579,7 +11579,7 @@ package body Sem_Ch13 is
                if M > Align then
 
                   --  This error is suppressed in ASIS mode to allow for
-                  --  different ASIS back-ends or ASIS-based tools to query the
+                  --  different ASIS back ends or ASIS-based tools to query the
                   --  illegal clause.
 
                   if not ASIS_Mode then
@@ -14206,7 +14206,7 @@ package body Sem_Ch13 is
                                  Target   => Target,
                                  Act_Unit => Act_Unit));
 
-         --  If both sizes are known statically now, then back end annotation
+         --  If both sizes are known statically now, then back-end annotation
          --  is not required to do a proper check but if either size is not
          --  known statically, then we need the annotation.
 
index e31704b818ceb7fe253aec384114a05f51a4d7ee..c867cf64b8710640522a0293a2460a3aaf5c7d4c 100644 (file)
@@ -7469,7 +7469,7 @@ package body Sem_Ch4 is
             Subp_Id  : Entity_Id;
 
          begin
-            --  Ensure that the routine is not called with itypes which lack a
+            --  Ensure that the routine is not called with itypes, which lack a
             --  declarative node.
 
             pragma Assert (Present (Typ_Decl));
@@ -7526,7 +7526,7 @@ package body Sem_Ch4 is
             Param_Typ  : Node_Id;
 
          begin
-            --  The classify as a suitable candidate, the subprogram must be a
+            --  To classify as a suitable candidate, the subprogram must be a
             --  function whose name matches the argument of aspect Constant or
             --  Variable_Indexing.
 
@@ -7667,12 +7667,12 @@ package body Sem_Ch4 is
          C_Type := Etype (Base_Type (C_Type));
       end if;
 
-      --  Check whether type the has a specified indexing aspect
+      --  Check whether the type has a specified indexing aspect
 
       Func_Name := Empty;
 
-      --  The context is suitable for constant indexing, obtain the name of the
-      --  indexing function from aspect Constant_Indexing.
+      --  The context is suitable for constant indexing, so obtain the name of
+      --  the indexing function from aspect Constant_Indexing.
 
       if Constant_Indexing_OK then
          Func_Name :=
index d4243a370eaceaa3b27b8f64130382d966d91d63..e22d7987c423469e16de5bf89581c346128c897e 100644 (file)
@@ -466,7 +466,7 @@ package body Sem_Prag is
 
       --  Set the Ghost mode in effect from the pragma. Due to the delayed
       --  analysis of the pragma, the Ghost mode at point of declaration and
-      --  point of analysis may not necessarely be the same. Use the mode in
+      --  point of analysis may not necessarily be the same. Use the mode in
       --  effect at the point of declaration.
 
       Set_Ghost_Mode (N);
@@ -2658,7 +2658,7 @@ package body Sem_Prag is
 
       --  Set the Ghost mode in effect from the pragma. Due to the delayed
       --  analysis of the pragma, the Ghost mode at point of declaration and
-      --  point of analysis may not necessarely be the same. Use the mode in
+      --  point of analysis may not necessarily be the same. Use the mode in
       --  effect at the point of declaration.
 
       Set_Ghost_Mode (N);
@@ -23297,7 +23297,7 @@ package body Sem_Prag is
 
       --  Set the Ghost mode in effect from the pragma. Due to the delayed
       --  analysis of the pragma, the Ghost mode at point of declaration and
-      --  point of analysis may not necessarely be the same. Use the mode in
+      --  point of analysis may not necessarily be the same. Use the mode in
       --  effect at the point of declaration.
 
       Set_Ghost_Mode (N);