[multiple changes]
authorPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Fri, 29 Sep 2017 13:04:47 +0000 (13:04 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Fri, 29 Sep 2017 13:04:47 +0000 (13:04 +0000)
2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle
all cases related to marking entity identifiers.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* adaint.c (win32_wait): Properly handle error and take into account
the WIN32 limitation on the number of simultaneous wait objects.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* cal.c: Minor proofreading.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix.
* gnat_ugn.texi: Regenerate.

2017-09-29  Bob Duff  <duff@adacore.com>

* lib-xref.ads: Comment fix.

2017-09-29  Bob Duff  <duff@adacore.com>

* exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants.
Discriminants can't need finalization.

2017-09-29  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes
for types in expression if the function is within a generic unit.
* sem_res.adb (Resolve): In a generic context do not freeze an
expression, unless it is an entity. This exception is solely for the
purpose of detecting illegal uses of deferred constants in generic
units.
* sem_res.adb: Minor reformatting.

From-SVN: r253285

gcc/ada/ChangeLog
gcc/ada/cal.c
gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
gcc/ada/exp_aggr.adb
gcc/ada/gnat_ugn.texi
gcc/ada/lib-xref.ads
gcc/ada/sem_ch6.adb
gcc/ada/sem_ch8.adb
gcc/ada/sem_res.adb

index 582dcbbc845865c2f2ab22a634ec0e4448125383..8b566a7cbce198cd60045f4f2db69c31d5aedf91 100644 (file)
@@ -1,3 +1,41 @@
+2017-09-29  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle
+       all cases related to marking entity identifiers.
+
+2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>
+
+       * adaint.c (win32_wait): Properly handle error and take into account
+       the WIN32 limitation on the number of simultaneous wait objects.
+
+2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>
+
+       * cal.c: Minor proofreading.
+
+2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix.
+       * gnat_ugn.texi: Regenerate.
+
+2017-09-29  Bob Duff  <duff@adacore.com>
+
+       * lib-xref.ads: Comment fix.
+
+2017-09-29  Bob Duff  <duff@adacore.com>
+
+       * exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants.
+       Discriminants can't need finalization.
+
+2017-09-29  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes
+       for types in expression if the function is within a generic unit.
+       * sem_res.adb (Resolve): In a generic context do not freeze an
+       expression, unless it is an entity. This exception is solely for the
+       purpose of detecting illegal uses of deferred constants in generic
+       units.
+       * sem_res.adb: Minor reformatting.
+
 2017-09-29  Justin Squirek  <squirek@adacore.com>
 
        * sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false
index 14921dcf4402132408f8823d37a6718b115f5ab3..05e4953f209b806446c3be43b7814fdb9770e25e 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                          *
  *                          C Implementation File                           *
  *                                                                          *
- *          Copyright (C) 1992-2014, Free Software Foundation, Inc.         *
+ *          Copyright (C) 1992-2017, 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- *
  *                                                                          *
  ****************************************************************************/
 
-/*  This file contains those routines named by Import pragmas in package    */
+/*  This file contains routines marked with pragmas Import in package       */
 /*  GNAT.Calendar. It is used to do Duration to timeval conversion.         */
-/*  These are simple wrappers function to abstract the fact that the C      */
-/*  struct timeval fields type are not normalized (they are generally       */
+/*  These are simple wrapper functions to abstract the fact that the C      */
+/*  struct timeval fields are not normalized (they are generally            */
 /*  defined as int or long values).                                         */
 
 #if defined (__vxworks)
index 91363500ab8978d3369654930a8f99a44e4d0d41..3f5f2d64c6b625b0b8a190a750c666f460905a63 100644 (file)
@@ -365,7 +365,7 @@ Switches for ``gnatls``
 
 .. index:: --RTS (gnatls)
 
-:switch:`--RTS={rts-path}``
+:switch:`--RTS={rts-path}`
   Specifies the default location of the runtime library. Same meaning as the
   equivalent ``gnatmake`` flag (:ref:`Switches_for_gnatmake`).
 
index 2fa0dc52b7ae8682c2a3c8109b8903efc6e550ab..0d6d3d14c9d9b5a0961c025666b4b6877ed7c7da 100644 (file)
@@ -2725,7 +2725,6 @@ package body Exp_Aggr is
                           Selector_Name => New_Occurrence_Of (Discr, Loc)),
                       Expression => New_Copy_Tree (Discr_Val));
 
-                  Set_No_Ctrl_Actions (Discr_Init);
                   Append_To (List, Discr_Init);
                end if;
 
@@ -2763,7 +2762,6 @@ package body Exp_Aggr is
                 Name       => Comp_Expr,
                 Expression => New_Copy_Tree (Discriminant_Value));
 
-            Set_No_Ctrl_Actions (Instr);
             Append_To (L, Instr);
 
             Next_Discriminant (Discriminant);
@@ -2795,7 +2793,6 @@ package body Exp_Aggr is
                 Name       => Comp_Expr,
                 Expression => New_Copy_Tree (Discriminant_Value));
 
-            Set_No_Ctrl_Actions (Instr);
             Append_To (L, Instr);
 
             Next_Stored_Discriminant (Discriminant);
index 22d6f1469ec85924ebe636b2d7a2d9249492e11b..5fdb2724ba1c0c09121f1851f587810ada01aa77 100644 (file)
@@ -21,7 +21,7 @@
 
 @copying
 @quotation
-GNAT User's Guide for Native Platforms , Sep 25, 2017
+GNAT User's Guide for Native Platforms , Sep 29, 2017
 
 AdaCore
 
@@ -17654,7 +17654,7 @@ Add @code{dir} at the beginning of the project search dir.
 
 @table @asis
 
-@item @code{--RTS=@emph{rts-path}`}
+@item @code{--RTS=@emph{rts-path}}
 
 Specifies the default location of the runtime library. Same meaning as the
 equivalent @code{gnatmake} flag (@ref{dc,,Switches for gnatmake}).
index ecb70b60f15e571a6653416dc4a3d2460b140bbc..d4216396c9ca6d9b991363552edefd49d562d85e 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1998-2016, Free Software Foundation, Inc.         --
+--          Copyright (C) 1998-2017, 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- --
@@ -611,7 +611,8 @@ package Lib.Xref is
      Table_Name           => "Name_Deferred_References");
 
    procedure Process_Deferred_References;
-   --  This procedure is called from Frontend to process these table entries
+   --  This procedure is called from Frontend to process these table entries.
+   --  It is also called from Sem_Warn.
 
    function Has_Deferred_Reference (Ent : Entity_Id) return Boolean;
    --  Determine whether arbitrary entity Ent has a pending reference in order
index 9ef0acaaf498229ba7ec4e23e2ca5e42d56dd48d..cf1b83f0ade123944c2fb629265452be15d9b7c1 100644 (file)
@@ -568,8 +568,11 @@ package body Sem_Ch6 is
          --  Note that we cannot defer this freezing to the analysis of the
          --  expression itself, because a freeze node might appear in a nested
          --  scope, leading to an elaboration order issue in gigi.
+         --  As elsewhere, we do not emit freeze nodes within a generic unit.
 
-         Freeze_Expr_Types (Def_Id);
+         if not Inside_A_Generic then
+            Freeze_Expr_Types (Def_Id);
+         end if;
 
          --  For navigation purposes, indicate that the function is a body
 
index 3eec5717f680c004312f834286a66160d87f6911..77df1c850100498855f3f99e6617016136629e05 100644 (file)
@@ -8405,15 +8405,7 @@ package body Sem_Ch8 is
               or else (Present (Prefix (Id))
                          and then Scope (Entity (Id)) /= Entity (Prefix (Id)))
             then
-               --  There is a case whereby a unary operator is used within a
-               --  qualified expression, so mark the parameters as well as the
-               --  entity.
-
-               if Nkind (Entity (Id)) = N_Defining_Operator_Symbol then
-                  Mark_Parameters (Entity (Id));
-               end if;
-
-               Mark_Use_Package (Scope (Entity (Id)));
+               Mark_Use_Clauses (Entity (Id));
             end if;
          end if;
       end if;
index 803ad0eb0aeb72bc27bfe2ce804977fcddf07e6f..1435e047f5afded1019dd023d57f6c712ffca3cc 100644 (file)
@@ -3070,7 +3070,14 @@ package body Sem_Res is
          --  Here we are resolving the corresponding expanded body, so we do
          --  need to perform normal freezing.
 
-         Freeze_Expression (N);
+         --  As elsewhere we do not emit freeze node within a generic. We make
+         --  an exception for entities that are expressions, only to detect
+         --  misuses of deferred constants and preserve the output of various
+         --  tests.
+
+         if not Inside_A_Generic or else Is_Entity_Name (N) then
+            Freeze_Expression (N);
+         end if;
 
          --  Now we can do the expansion