[Ada] Avoid spurious error in GNATprove mode on non-null access types
[gcc.git] / gcc / ada / ChangeLog
index e9a8e79a0dba13f2a16e9681118531b2ac97a05d..e422ee771da008e0733174191e787eaf76572926 100644 (file)
@@ -1,3 +1,198 @@
+2019-08-21  Yannick Moy  <moy@adacore.com>
+
+       * checks.adb (Install_Null_Excluding_Check): Do not install
+       check in GNATprove mode.
+
+2019-08-21  Yannick Moy  <moy@adacore.com>
+
+       * sem_spark.adb (Process_Path): Do nothing on address of
+       subprogram.
+
+2019-08-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Finalize_Address): Deal consistently with
+       subtypes of private protected types.
+
+2019-08-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Corresponding_Runtime_Package): Use high-level
+       Is_Protected_Type.
+       * sem_ch8.adb (Analyze_Renamed_Entry): Likewise.
+       * sem_ch9.adb (Analyze_Requeue): Likewise.
+
+2019-08-21  Javier Miranda  <miranda@adacore.com>
+
+       * sem_util.adb (Update_Named_Associations): Update
+       First_Named_Actual when the subprogram call has a single named
+       actual.
+
+2019-08-21  Joel Brobecker  <brobecker@adacore.com>
+
+       * doc/Makefile (mk_empty_dirs): New (PHONY) rule.
+       (%.html, %.pdf, %.txt, %.info, %.texinfo): Add dependencies on
+       mk_empty_dirs.
+
+2019-08-21  Justin Squirek  <squirek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Modify
+       documentation to reflect expected behavior.
+       * gnat_rm.texi: Regenerate.
+       * sem_prag.adb (Analyze_Pragma): Modify handling of pragma
+       Max_Entry_Queue_Length to not reject integer values of negative
+       one.
+       * sem_util.adb (Get_Max_Queue_Length): Add processing for values
+       of negative one to fit within the current scheme.
+
+2019-08-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_unst.adb (Unnest_Subprograms, Unnest_Subprogram): Take
+       inlining (-gnatn) into account.
+
+2019-08-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
+       Storage_Size): If the expression for Storage_Size is not static
+       it may depend on characterstics of another type that may bot be
+       frozen yet, so the elaboration of the expression for the aspect
+       must be attached directly to the freeze actions of the type to
+       which it applies.
+
+2019-08-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Build_DIC_Procedure_Declaration): Set the last
+       entity of the generated Default_Initial_Condition procedure in
+       order to construct a proper entity chain.
+
+2019-08-20  Yannick Moy  <moy@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_N_Slice_Or_Indexed_Component):
+       Renaming of function to apply to slices as well.
+       (Expand_SPARK): Expand prefix of slices of access type.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * exp_aggr.adb (Expand_Array_Aggregate): Use build-in-place in
+       the nonlimited case in STEP 4. This improves the efficiency of
+       things like (1 .. 1000 => <>).  We still generate some code for
+       that, unfortunately, but it is much improved.
+       (Aggr_Assignment_OK_For_Backend): Return false if <> components
+       are present.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Needs_BIP_Alloc_Form): Call
+       Requires_Transient_Scope rather than checking constrainedness
+       and so forth.  We have previously improved
+       Requires_Transient_Scope to return False in various cases,
+       notably a limited record with an access discriminant. This
+       change takes advantage of that to avoid using the secondary
+       stack for functions returning such types.
+       (Make_Build_In_Place_Call_In_Allocator): Be consistent by
+       calling Needs_BIP_Alloc_Form rather than Is_Constrained and so
+       forth.
+       * sem_ch4.adb (Analyze_Allocator): The above change causes the
+       compiler to generate code that is not legal Ada, in particular
+       an uninitialized allocator for indefinite subtype.  This is
+       harmless, so we suppress the error message in this case.
+
+2019-08-20  Gary Dismukes  <dismukes@adacore.com>
+
+       * ali.adb, ali.ads, aspects.adb, checks.ads, checks.adb,
+       doc/gnat_rm/implementation_defined_pragmas.rst,
+       doc/gnat_ugn/building_executable_programs_with_gnat.rst,
+       einfo.ads, exp_aggr.adb, exp_ch11.adb, exp_ch3.ads, exp_ch4.adb,
+       exp_disp.adb, inline.adb, libgnat/a-locale.ads,
+       libgnat/s-soflin.ads, par_sco.adb, repinfo.adb, sem_ch5.adb,
+       sem_disp.adb, sem_elab.adb, sem_eval.adb, sem_spark.adb,
+       sem_spark.ads, sinfo.ads: Minor reformattings, typo fixes and
+       and rewordings.
+
+2019-08-20  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * adaint.c (__gnat_to_gm_time): On _WIN32, don't round time up
+       to even second.
+
+2019-08-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): If actual type is
+       private and distinct from nominal type in declaration, propagate
+       flags Is_Constr_Subt_For_U_Nominal and _UN_Aliased to full view
+       of private type.
+
+2019-08-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_attr.adb (Expand_Loop_Entry_Attribute): When expanding a
+       loop entry attribute for a while_loop we construct a function
+       that incorporates the expanded condition of the loop. The itypes
+       that may be generated in that expansion must carry the scope of
+       the constructed function for proper handling in gigi.
+
+2019-08-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When a
+       dispatching call tp a subprogram with a class-wide precondition
+       occurrs in the same declarative part as the ancestor subprogram
+       being called, the`expression for the precondition has not been
+       analyzed yet. Such a call may appear, e.g. in an expression
+       function. In that case, the replacement of formals by actuals in
+       the call cannot use the formal entities of the subprogram being
+       called, and the occurrence of the formals in the expression must
+       be located by name (Chars fields) as would be done at a later
+       freeze point, when the expression is resolved in the context of
+       the subprogram itself.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * sem_prag.adb (Persistent_BSS): If an initialization is present
+       because of Initialize_Scalars or Normalize_Scalars, generate an
+       implicit pragma Suppress_Initialization to remove that, because
+       initialization is not allowed for these variables. Other
+       initializations remain illegal.
+
+2019-08-20  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch3.adb (OK_For_Limited_Init_In_05): In the case of type
+       conversions, apply the recursive call to the Original_Node of
+       the expression Exp rather than the Expression of the
+       Original_Node, in the case where Exp has been rewritten;
+       otherwise, when Original_Node is the same as Exp, apply the
+       recursive call to the Expression.
+       (Check_Initialization): Revise condition for special check on
+       type conversions of limited function calls to test Original_Node
+       (avoiding spurious errors on expanded unchecked conversions
+       applied to build-in-place dispatching calls).
+
+2019-08-20  Patrick Bernardi  <bernardi@adacore.com>
+
+       * exp_aggr.adb (Expand_Record_Aggregate): Always convert a
+       record Aggregate to assignment statements if the option
+       Aggregate_Individually_Assign is set.
+       * opt.ads (Aggregate_Individually_Assign): New option.
+       * par-prag.adb (Prag): Add Pragma_Aggregate_Individually_Assign.
+       * sem_prag.adb (Analyze_Pragma): Likewise.
+       * snames.ads-tmpl: Add Pragma_Aggregate_Individually_Assign and
+       Name_Aggregate_Individually_Assign.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document
+       pragma Aggregate_Individually_Assign.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * par-ch4.adb: Minor wording change in error messages.
+       * sem_aggr.adb (Resolve_Delta_Aggregate): Emit an error for Ada
+       versions prior to Ada 2020.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * freeze.adb (Is_Atomic_VFA_Aggregate): Make the temp for
+       initialization of the atomic variable be constant. This is
+       cleaner, and might improve efficiency.
+
+2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * repinfo.adb (List_Record_Info): In -gnatR4 mode, set the
+       relevant flag on the implicit base type of a record subtype.
+
 2019-08-20  Bob Duff  <duff@adacore.com>
 
        * sem_eval.adb (Expr_Value): Implement the case of an unchecked