summaryrefslogtreecommitdiff
path: root/gcc/ada/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/ChangeLog')
-rw-r--r--gcc/ada/ChangeLog788
1 files changed, 788 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 6e2a7ffd099..edf87c37cdf 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,791 @@
+2017-11-10 Martin Sebor <msebor@redhat.com>
+
+ PR c/81117
+ * adadecode.c (__gnat_decode): Use memcpy instead of strncpy.
+ * argv.c (__gnat_fill_arg, __gnat_fill_env): Likewise.
+
+2017-11-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils.c (convert) <RECORD_TYPE>: Add comment and do
+ not fall through to the next case.
+ <ARRAY_TYPE>: Deal specially with a dereference from another array
+ type with the same element type.
+
+2017-11-09 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_util.adb, freeze.adb: Minor reformatting.
+
+2017-11-09 Jerome Lambourg <lambourg@adacore.com>
+
+ * gcc-interface/Makefile.in: Add rules to build aarch64-qnx runtimes.
+
+2017-11-09 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * gcc-interface/trans.c (gnat_to_gnu): Add processing for
+ N_Variable_Reference_Marker nodes.
+
+2017-11-09 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Analyze_Generic_Package_Declaration): Handle properly
+ the pragma Compile_Time_Error when it appears in a generic package
+ declaration and uses an expanded name to denote the current unit.
+
+2017-11-09 Jerome Lambourg <lambourg@adacore.com>
+
+ * libgnarl/s-taprop__qnx.adb: Fix incorrect casing for pthread_self.
+ * tracebak.c: Add support for tracebacks in QNX.
+
+2017-11-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_aggr.adb (Aggr_Size_OK): Bump base limit from 50000 to 500000.
+
+2017-11-09 Yannick Moy <moy@adacore.com>
+
+ * erroutc.adb, set_targ.adb: Remove pragma Annotate for CodePeer
+ justification.
+
+2017-11-09 Joel Brobecker <brobecker@adacore.com>
+
+ * doc/gnat_ugn/platform_specific_information.rst: Document packages
+ needed on GNU/Linux by GNAT.
+ * gnat_ugn.texi: Regenerate.
+
+2017-11-09 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * contracts.adb (Analyze_Contracts): Remove the three parameter
+ version. This routine now only analyzes contracts and does not perform
+ any freezing actions.
+ (Analyze_Previous_Contracts): Removed.
+ (Freeze_Previous_Contracts): New routine.
+ * contracts.ads (Analyze_Previous_Contracts): Removed.
+ (Freeze_Previous_Contracts): New routine.
+ * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
+ enclosing package spec regardless of whether the list denotes the
+ visible or private declarations. Fix the removal of partial state
+ refinements when the context is a package spec.
+ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Freeze previous
+ contracts.
+ * sem_ch7.adb (Analyze_Package_Body_Helper): Freeze previous contracts.
+ * sem_ch9.adb (Analyze_Entry_Body): Freeze previous contracts.
+ (Analyze_Protected_Body): Freeze previous contracts.
+ (Analyze_Task_Body): Freeze previous contracts.
+ * sem_prag.adb: Comment reformatting.
+
+2017-11-09 Bob Duff <duff@adacore.com>
+
+ * libgnarl/g-thread.ads, libgnarl/g-thread.adb: (Make_Independent):
+ Export this so users can use it without importing
+ System.Tasking.Utilities.
+ * libgnarl/s-tassta.adb (Vulnerable_Complete_Task): Relax assertion
+ that fails when Make_Independent is called on a user task.
+ * libgnarl/s-taskin.ads (Master_Of_Task): Avoid unusual
+ capitalization style ((style) bad casing of "Master_of_Task").
+
+2017-11-09 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Analyze_Subprogram_Instantiation): Correct use of
+ uninitialized variable uncovered by Codepeer.
+
+2017-11-09 Arnaud Charlet <charlet@adacore.com>
+
+ * namet.adb: Replace pragma Assume by pragma Assert to fix bootstrap.
+
+2017-11-09 Javier Miranda <miranda@adacore.com>
+
+ * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
+ (Static_Dispatch_Tables): Minor rewording.
+ * gnat_rm.texi: Regenerate.
+
+2017-11-09 Justin Squirek <squirek@adacore.com>
+
+ * sem_ch8.adb (Analyze_Use_Package): Remove forced installation of
+ use_clauses within instances.
+ (Use_One_Package): Add condition to check for "hidden" open scopes to
+ avoid skipping over packages that have not been properly installed even
+ though they are visible.
+
+2017-11-09 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch4.adb (Analyze_Selected_Component): Reject properly a call to a
+ private operation of a protected type, when the type has no visible
+ operations.
+
+2017-11-09 Javier Miranda <miranda@adacore.com>
+
+ * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_HT_Link.
+ * exp_disp.adb (Make_DT): Initialize the HT_Link field of the TSD only
+ if available.
+
+2017-11-09 Bob Duff <duff@adacore.com>
+
+ * exp_ch4.adb, exp_ch9.adb, exp_prag.adb, par-ch3.adb, sem_aggr.adb,
+ sem_ch12.adb, sem_ch13.adb, sem_ch4.adb, sem_disp.adb, sem_prag.adb,
+ sem_res.adb, sem_util.adb: Get rid of warnings about uninitialized
+ variables.
+
+2017-11-09 Yannick Moy <moy@adacore.com>
+
+ * exp_disp.adb (Make_DT): Default initialize Ifaces_List and
+ Ifaces_Comp_List.
+
+2017-11-09 Pascal Obry <obry@adacore.com>
+
+ * libgnarl/s-taprop__mingw.adb: On Windows, initialize the thead handle
+ only for foreign threads. We initialize the thread handle only if not
+ yet initialized. This happens in Enter_Task for foreign threads only.
+ But for native threads (Ada tasking) we do want to keep the real
+ handle (from Create_Task) to be able to free the corresponding
+ resources in Finalize_TCB (CloseHandle).
+
+2017-11-09 Yannick Moy <moy@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute): Default initialize P_Type,
+ P_Base_Type.
+ (Error_Attr_P): Fix name in pragma No_Return.
+ (Unexpected_Argument): Add pragma No_Return.
+ (Placement_Error): Add pragma No_Return.
+
+2017-11-09 Javier Miranda <miranda@adacore.com>
+
+ * exp_disp.adb (Elab_Flag_Needed): Elaboration flag not needed when the
+ dispatch table is statically built.
+ (Make_DT): Declare constant the Interface_Table object associated with
+ an statically built dispatch table. For this purpose the Offset_To_Top
+ value of each interface is computed using the dummy object.
+ * exp_ch3.adb (Build_Init_Procedure): Do not generate code initializing
+ the Offset_To_Top field of secondary dispatch tables when the dispatch
+ table is statically built.
+ (Initialize_Tag): Do not generate calls to Register_Interface_Offset
+ when the dispatch table is statically built.
+ * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
+ Document the new GNAT restriction Static_Dispatch_Tables.
+ * gnat_rm.texi: Regenerate.
+
+2017-11-09 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reorder declarations
+ to avoid a dormant bug.
+
+2017-11-09 Jerome Lambourg <lambourg@adacore.com>
+
+ * init.c: Define missing __gnat_alternate_stack for QNX. Set it to 0,
+ as such capability is not available on the OS.
+ * link.c: Make sure linker options for QNX are correct.
+ * libgnarl/s-osinte__qnx.ads: Add some missing bindings to pthread.
+ * libgnarl/s-taprop__qnx.adb: New, derived from s-taprop__posix.adb. This brings
+ in particular a workaround with locks priority ceiling where a higher
+ priority task is allowed to lock a lower ceiling priority lock. This
+ also fixes the scheduling of FIFO tasks when the priority of a task is
+ lowered.
+ * libgnat/system-qnx-aarch64.ads: Fix priority ranges.
+
+2017-11-09 Yannick Moy <moy@adacore.com>
+
+ * erroutc.adb (Output_Error_Msgs): Justify CodePeer false positive
+ message.
+ * gnatbind.adb (Scan_Bind_Arg): Simplify test to remove always true
+ condition.
+ * namet.adb (Copy_One_Character): Add assumption for static analysis,
+ as knowledge that Hex(2) is in the range 0..255 is too complex for
+ CodePeer.
+ (Finalize): Add assumption for static analysis, as the fact that there
+ are symbols in the table depends on a global invariant at this point in
+ the program.
+ * set_targ.adb (Check_Spaces): Justify CodePeer false positive message.
+ * stylesw.adb (Save_Style_Check_Options): Rewrite to avoid test always
+ true.
+
+2017-11-09 Javier Miranda <miranda@adacore.com>
+
+ * libgnat/s-rident.ads (Static_Dispatch_Tables): New restriction name.
+ * exp_disp.adb (Building_Static_DT): Check restriction.
+ (Building_Static_Secondary_DT): Check restriction.
+ (Make_DT): Initialize the HT_Link to No_Tag.
+ * opt.ads (Static_Dispatch_Tables): Rename flag...
+ (Building_Static_Dispatch_Tables): ... into this. This will avoid
+ conflict with the restriction name.
+ * gnat1drv.adb: Update.
+ * exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Update.
+ * exp_ch3.adb (Expand_N_Object_Declaration): Update.
+
+2017-11-09 Pascal Obry <obry@adacore.com>
+
+ * libgnarl/s-taprop__mingw.adb: Minor code clean-up. Better using a
+ named number.
+
+2017-11-09 Yannick Moy <moy@adacore.com>
+
+ * binde.adb (Diagnose_Elaboration_Problem): Mark procedure No_Return.
+ * checks.adb (Apply_Scalar_Range_Check): Rescope variable OK closer to
+ use. Default initialize Hi, Lo.
+ (Selected_Range_Checks): Retype Num_Checks more precisely.
+ (Determine_Range, Determine_Range_R): Default initialize Hi_Right,
+ Lo_Right.
+ * contracts.adb (Process_Contract_Cases): Mark parameter Stmts as
+ Unmodified.
+ (Process_Postconditions): Mark parameter Stmts as Unmodified.
+ * exp_attr.adb (Expand_Loop_Entry_Attribute): Default initialize Blk.
+ * exp_ch4.adb (Expand_N_Allocator): Default initialize Typ.
+ (Expand_Concatenate): Default initialize High_Bound.
+ (Optimize_Length_Comparison): Default initialize Ent, Index.
+ * exp_ch5.adb (Expand_Predicated_Loop): Default initialize L_Hi and
+ L_Lo.
+ * exp_ch6.adb (Expand_N_Extended_Return_Statement): Default initialize
+ Return_Stmt.
+ * exp_ch9.adb (Expand_Entry_Barrier): Default initialize Func_Body and
+ remove pragma Warnings(Off).
+ * exp_imgv.adb (Expand_Image_Attribute): Default initialize Tent.
+ * exp_util.adb (Find_Interface_Tag): Default initialize AI_Tag.
+ * freeze.adb (Check_Component_Storage_Order): Default initialize
+ Comp_Byte_Aligned rather than silencing messages with pragma
+ Warnings(Off), which does not work for CodePeer initialization
+ messages, and given that here the possible read of an unitialized value
+ depends on a proper use of parameters by the caller.
+ * inline.adb (Expand_Inlined_Call): Default initialize Lab_Decl, Targ.
+ * sem_ch12.adb (Build_Operator_Wrapper): Default initialize Expr.
+ * sem_ch3.adb (Build_Derived_Array_Type): Default initialize
+ Implicit_Base.
+ * sem_ch4.adb (List_Operand_Interps): Default initialize Nam and remove
+ pragma Warnings(Off).
+ (Analyze_Case_Expression): Rescope checking block within branch where
+ Others_Present is set by the call to Check_Choices.
+ * sem_ch5.adb (Analyze_Assignment): Default initialize
+ Save_Full_Analysis.
+ * sem_ch6.adb (Analyze_Function_Return): Default initialize Obj_Decl,
+ and restructure code to defend against previous errors, so that, in
+ that case, control does not flow to the elsif condition which read an
+ uninitialized Obj_Decl.
+ * sem_ch9.adb (Analyze_Requeue): Default initialize Synch_Type.
+ (Check_Interfaces): Default initialize Full_T_Ifaces and Priv_T_Ifaces,
+ which seem to be left uninitialized and possibly read in some cases.
+ * sem_dim.adb (Analyze_Aspect_Dimension_System): Retype Position more
+ precisely. This requires to exchange the test for exiting in case of
+ too many positions and the increment to Position, inside the loop.
+ * sem_eval.adb (Eval_Concatenation): Default initialize Folded_Val,
+ which cannot be read uninitialized, but the reasons for that are quite
+ subtle.
+ * sem_intr.adb (Check_Intrinsic_Call): Default initialize Rtyp.
+ * sem_prag.adb (Collect_Subprogram_Inputs_Outputs): Default initialize
+ Spec_Id.
+ * sem_res.adb (Make_Call_Into_Operator): Default initialize Opnd_Type,
+ and test for presence of non-null Opnd_Type before testing its scope,
+ in a test which would read its value uninitialized, and is very rarely
+ exercized (it depends on the presence of an extension of System).
+ * sem_spark.ads: Update comment to fix name of main analysis procedure.
+ * sem_warn.adb (Warn_On_Known_Condition): Default initialize
+ Test_Result.
+ * set_targ.adb (FailN): Mark procedure with No_Return.
+ * stylesw.adb (Save_Style_Check_Options): Delete useless code to
+ initialize all array Options to white space, as there is already code
+ doing the same for the remaining positions in Options at the end of the
+ procedure.
+
+2017-11-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch11.adb (Possible_Local_Raise): Do not issue the warning for
+ generic instantiations either.
+
+2017-11-09 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Analyze_Part_Of): Reword error message.
+ (Get_SPARK_Mode_Type): Do not raise Program_Error in case pragma
+ SPARK_Mode appears with an illegal mode, treat this as a non-existent
+ mode.
+
+2017-11-09 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch4.adb (Analyze_Call): Reject a call to a function that returns
+ a limited view of a type T declared in unit U1, when the function is
+ declared in another unit U2 and the call appears in a procedure within
+ another unit.
+
+2017-11-09 Justin Squirek <squirek@adacore.com>
+
+ * sem_ch8.adb (Analyze_Use_Package): Force installation of use_clauses
+ when processing generic instances.
+
+2017-11-09 Bob Duff <duff@adacore.com>
+
+ * namet.ads, namet.adb (Valid_Name_Id): New subtype that excludes
+ Error_Name and No_Name. Use this (versus Name_Id) to indicate which
+ objects can have those special values. Valid_Name_Id could usefully be
+ used all over the compiler front end, but that's too much trouble for
+ now. If we did that, we might want to rename:
+ Name_Id --> Optional_Name_Id, Valid_Name_Id --> Name_Id.
+ For parameters of type Valid_Name_Id, remove some redundant tests,
+ including the ones found by CodePeer. Use Is_Valid_Name instead of
+ membership test when appropriate.
+ (Error_Name_Or_No_Name): Delete this; it's no longer needed.
+ * sem_ch2.adb (Analyze_Identifier): Use "not Is_Valid_Name" instead of
+ "in Error_Name_Or_No_Name".
+ (Check_Parameterless_Call): Use "not Is_Valid_Name" instead of "in
+ Error_Name_Or_No_Name".
+
+2017-11-09 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat1drv.adb (Adjust_Global_Switches): Suppress warnings in codepeer
+ mode here unless -gnateC is specified.
+ * switch-c.adb (Scan_Front_End_Switches): Do not suppress warnings with
+ -gnatC here.
+
+2017-11-09 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-writ.adb (Write_ALI): Remove processing of the frontend xrefs as
+ part of the ALI writing; they are now processed directly from memory
+ when requested by the backend.
+ * lib-xref.ads (Collect_SPARK_Xrefs): Remove.
+ (Iterate_SPARK_Xrefs): New routine for iterating over frontend xrefs.
+ * lib-xref-spark_specific.adb (Traverse_Compilation_Unit): Remove.
+ (Add_SPARK_File): Remove.
+ (Add_SPARK_Xref): Refactored from removed code; filters xref entries
+ that are trivially uninteresting to the SPARK backend.
+ * spark_xrefs.ads: Remove code that is no longer needed.
+ * spark_xrefs.adb (dspark): Adapt to use Iterate_SPARK_Xrefs.
+
+2017-11-09 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_elab.adb: Update the documentation on adding a new elaboration
+ schenario. Add new hash table Recorded_Top_Level_Scenarios.
+ (Is_Check_Emitting_Scenario): Removed.
+ (Is_Recorded_Top_Level_Scenario): New routine.
+ (Kill_Elaboration_Scenario): Reimplemented.
+ (Record_Elaboration_Scenario): Mark the scenario as recorded.
+ (Set_Is_Recorded_Top_Level_Scenario): New routine.
+ (Update_Elaboration_Scenario): Reimplemented.
+ * sinfo.adb (Is_Recorded_Scenario): Removed.
+ (Set_Is_Recorded_Scenario): Removed.
+ * sinfo.ads: Remove attribute Is_Recorded_Scenario along with
+ occurrences in nodes.
+ (Is_Recorded_Scenario): Removed along with pragma Inline.
+ (Set_Is_Recorded_Scenario): Removed along with pragma Inline.
+
+2017-11-09 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb (Analyze_Part_Of): Change "designate" to "denote" in
+ error message.
+
+2017-11-09 Justin Squirek <squirek@adacore.com>
+
+ * sem_res.adb (Resolve_Allocator): Add warning messages corresponding
+ to the allocation of an anonymous access-to-controlled object.
+
+2017-11-09 Jerome Lambourg <lambourg@adacore.com>
+
+ * sigtramp-qnx.c: Fix obvious typo.
+
+2017-11-09 Doug Rupp <rupp@adacore.com>
+
+ * libgnarl/s-taprop__linux.adb (Monotonic_Clock): Minor reformatting.
+
+2017-11-09 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Resolve): If expression is an entity whose type has
+ implicit dereference, generate reference to it, because no reference is
+ generated for an overloaded entity during analysis, given that its
+ identity may not be known.
+
+2017-11-09 Javier Miranda <miranda@adacore.com>
+
+ * exp_disp.adb (Expand_Interface_Thunk): Replace substraction of
+ offset-to-top field by addition.
+ (Make_Secondary_DT): Initialize the offset-to-top field with a negative
+ offset.
+ * exp_ch3.adb (Build_Offset_To_Top_Function): Build functions that
+ return a negative offset-to-top value.
+ (Initialize_Tag): Invoke runtime services Set_Dynamic_Offset_To_Top and
+ Set_Static_Offset_To_Top passing a negative offet-to-top value;
+ initialize also the offset-to-top field with a negative offset.
+ * libgnat/a-tags.adb (Base_Address): Displace the pointer by means of
+ an addition since the offset-to-top field is now a negative value.
+ (Displace): Displace the pointer to the object means of a substraction
+ since it is now a negative value.
+ (Set_Dynamic_Offset_to_top): Displace the pointer to the object by
+ means of a substraction since it is now a negative value.
+
+2017-11-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat1drv.adb (Gnat1drv): Call Errout.Finalize (Last_Call => True)
+ before Errout.Output_Messages also in the case of compilation errors.
+
+2017-11-09 Javier Miranda <miranda@adacore.com>
+
+ * doc/gnat_ugn/the_gnat_compilation_model.rst (Interfacing with C++ at
+ the Class Level): Fix error interfacing with C strings.
+ * gnat_ugn.texi: Regenerate.
+
+2017-11-09 Jerome Lambourg <lambourg@adacore.com>
+
+ * system-qnx-aarch64.ads: Fix the priority constants.
+ * s-osinte__qnx.ads: Fix constants for handling the locking protocols
+ and scheduling.
+ * s-osinte__qnx.adb: New file , prevents the use of priority 0 that
+ corresponds to an idle priority on QNX.
+
+2017-11-09 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_prag.adb, sem_util.adb, sem_elab.adb: Fix minor typos in
+ comments.
+
+2017-11-09 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Ignore loop parameters
+ in expression funtions that are expanded into variables.
+
+2017-11-09 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_util.adb: Minor whitespace cleanup.
+
+2017-11-09 Jerome Lambourg <lambourg@adacore.com>
+
+ * libgnarl/s-taprop__qnx.adb: Refine aarch64-qnx. Use the POSIX
+ s-taprop version rather than a custom one.
+ * sigtramp-qnx.c (aarch64-qnx): Implement the signal trampoline.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref.ads, lib-xref-spark_specific.adb
+ (Traverse_Compilation_Unit): Move declaration to package body.
+
+2017-11-08 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Obtain
+ the type of the renaming from its defining entity, rather then the
+ subtype mark as there may not be a subtype mark.
+
+2017-11-08 Jerome Lambourg <lambourg@adacore.com>
+
+ * adaint.c, s-oscons-tmplt.c, init.c, libgnat/system-qnx-aarch64.ads,
+ libgnarl/a-intnam__qnx.ads, libgnarl/s-intman__qnx.adb,
+ libgnarl/s-osinte__qnx.ads, libgnarl/s-qnx.ads,
+ libgnarl/s-taprop__qnx.adb, s-oscons-tmplt.c, sigtramp-qnx.c,
+ terminals.c: Initial port of GNAT for aarch64-qnx
+
+2017-11-08 Elisa Barboni <barboni@adacore.com>
+
+ * exp_util.adb (Find_DIC_Type): Move...
+ * sem_util.ads, sem_util.adb (Find_DIC_Type): ... here.
+
+2017-11-08 Justin Squirek <squirek@adacore.com>
+
+ * sem_res.adb (Resolve_Allocator): Add info messages corresponding to
+ the owner and corresponding coextension.
+
+2017-11-08 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_aggr.adb (Resolve_Delta_Aggregate): Divide into the
+ following separate procedures.
+ (Resolve_Delta_Array_Aggregate): Previous code form
+ Resolve_Delta_Aggregate.
+ (Resolve_Delta_Record_Aggregate): Extend previous code to cover latest
+ ARG decisions on the legality rules for delta aggregates for records:
+ in the case of a variant record, components from different variants
+ cannot be specified in the delta aggregate, and this must be checked
+ statically.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (SPARK_Scope_Record): Remove File_Num component.
+ * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of
+ removed component.
+
+2017-11-08 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch4.adb: Minor typo fix.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (SPARK_Scope_Record): Remove Spec_File_Num and
+ Spec_Scope_Num components.
+ * spark_xrefs.adb (dspark): Skip pretty-printing to removed components.
+ * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of
+ removed components.
+ (Collect_SPARK_Xrefs): Skip setting proper values of removed
+ components.
+
+2017-11-08 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Type_Conversion): Add test that the selector
+ name is a discriminant in check for unconditional accessibility
+ violation within instances.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove special-case
+ for constants (with variable input).
+ (Is_Constant_Object_Without_Variable_Input): Remove.
+
+2017-11-08 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch9.adb, sem_disp.adb, sem_util.adb: Minor reformatting.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (Rtype): Remove special-casing of constants for SPARK
+ cross-references.
+ (dspark): Remove hardcoded table bound.
+
+2017-11-08 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch4.adb (Analyze_Aggregate): For Ada2020 delta aggregates, use
+ the type of the base of the construct to determine the type (or
+ candidate interpretations) of the delta aggregate. This allows the
+ construct to appear in a context that expects a private extension.
+ * sem_res.adb (Resolve): Handle properly a delta aggregate with an
+ overloaded base.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (SPARK_Xref_Record): Replace file and scope indices
+ with Entity_Id of the reference.
+ * spark_xrefs.adb (dspark): Adapt pretty-printing routine.
+ * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Store Entity_Id of the
+ reference, not the file and scope indices.
+
+2017-11-08 Arnaud Charlet <charlet@adacore.com>
+
+ * errout.ads (Current_Node): New.
+ * errout.adb (Error_Msg): Use Current_Node.
+ * par-ch6.adb, par-ch7.adb, par-ch9.adb, par-util.adb: Set Current_Node
+ when relevant.
+ * style.adb: Call Error_Msg_N when possible.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (SPARK_Scope_Record): Rename Scope_Id component to
+ Entity.
+ * lib-xref-spark_specific.adb, spark_xrefs.adb: Propagate renaming of
+ the Scope_Id record component.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (SPARK_File_Record): Remove string components.
+ * spark_xrefs.adb (dspark): Remove pretty-printing of removed
+ SPARK_File_Record components.
+ * lib-xref-spark_specific.adb (Add_SPARK_File): Do not store string
+ representation of files/units.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref.ads, lib-xref-spark_specific.adb (Traverse_Declarations):
+ Remove Inside_Stubs parameter.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (SPARK_Xref_Record): Referenced object is now
+ represented by Entity_Id.
+ (SPARK_Scope_Record): Referenced scope (e.g. subprogram) is now
+ represented by Entity_Id; this information is not repeated as
+ Scope_Entity.
+ (Heap): Moved from lib-xref-spark_specific.adb, to reside next to
+ Name_Of_Heap_Variable.
+ * spark_xrefs.adb (dspark): Adapt debug routine to above changes in
+ data types.
+ * lib-xref-spark_specific.adb: Adapt routines for populating SPARK
+ scope and xrefs tables to above changes in data types.
+
+2017-11-08 Justin Squirek <squirek@adacore.com>
+
+ * sem_ch8.adb (Mark_Use_Clauses): Add condition to always mark the
+ primitives of generic actuals.
+ (Mark_Use_Type): Add recursive call to properly mark class-wide type's
+ base type clauses as per ARM 8.4 (8.2/3).
+
+2017-11-08 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.adb (Analyze_Generic_Subprobram_Body): Validate
+ categorization dependency of the body, as is done for non-generic
+ units.
+ (New_Overloaded_Entity, Visible_Part_Type): Remove linear search
+ through declarations (Simple optimization, no behavior change).
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * spark_xrefs.ads (SPARK_Xref_Record): Remove inessential components.
+ (SPARK_Scope_Record): Remove inessential components.
+ * spark_xrefs.adb (dspark): Remove pretty-printing of removed record
+ components.
+ * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove setting of
+ removed record components.
+ (Add_SPARK_Xrefs): Remove setting of removed record components.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove dead check for
+ empty entities.
+
+2017-11-08 Javier Miranda <miranda@adacore.com>
+
+ * sem_disp.adb (Is_Inherited_Public_Operation): Extend the
+ functionality of this routine to handle multiple levels of derivations.
+
+2017-11-08 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * einfo.adb: Elist36 is now used as Nested_Scenarios.
+ (Nested_Scenarios): New routine.
+ (Set_Nested_Scenarios): New routine.
+ (Write_Field36_Name): New routine.
+ * einfo.ads: Add new attribute Nested_Scenarios along with occurrences
+ in entities.
+ (Nested_Scenarios): New routine along with pragma Inline.
+ (Set_Nested_Scenarios): New routine along with pragma Inline.
+ * sem_elab.adb (Find_And_Process_Nested_Scenarios): New routine.
+ (Process_Nested_Scenarios): New routine.
+ (Traverse_Body): When a subprogram body is traversed for the first
+ time, find, save, and process all suitable scenarios found within.
+ Subsequent traversals of the same subprogram body utilize the saved
+ scenarios.
+
+2017-11-08 Piotr Trojanek <trojanek@adacore.com>
+
+ * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove detection of
+ protected operations.
+ (Add_SPARK_Xrefs): Simplify detection of empty entities.
+ * get_spark_xrefs.ads, get_spark_xrefs.adb, put_spark_xrefs.ads,
+ put_spark_xrefs.adb, spark_xrefs_test.adb: Remove code for writing,
+ reading and testing SPARK cross-references stored in the ALI files.
+ * lib-xref.ads (Output_SPARK_Xrefs): Remove.
+ * lib-writ.adb (Write_ALI): Do not write SPARK cross-references to the
+ ALI file.
+ * spark_xrefs.ads, spark_xrefs.adb (pspark): Remove, together
+ with description of the SPARK xrefs ALI format.
+ * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove get_spark_refs.o
+ and put_spark_refs.o.
+
+2017-11-08 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch4.adb (Apply_Accessibility_Check): Do not finalize the object
+ when the associated access type is subject to pragma
+ No_Heap_Finalization.
+ * exp_intr.adb (Expand_Unc_Deallocation): Use the available view of the
+ designated type in case it comes from a limited withed unit.
+
+2017-11-08 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch3.adb (Expand_N_Object_Declaration): Save and restore relevant
+ SPARK-related flags. Add ??? comment.
+ * exp_util.adb (Insert_Actions): Add an entry for node
+ N_Variable_Reference_Marker.
+ * sem.adb (Analyze): Add an entry for node N_Variable_Reference_Marker.
+ * sem_ch8.adb (Find_Direct_Name): Add constant Is_Assignment_LHS. Build
+ and record a variable reference marker for the current name.
+ (Find_Expanded_Name): Add constant Is_Assignment_LHS. Build and record
+ a variable reference marker for the current name.
+ * sem_elab.adb (Build_Variable_Reference_Marker): New routine.
+ (Extract_Variable_Reference_Attributes): Reimplemented.
+ (Info_Scenario): Add output for variable references and remove output
+ for variable reads.
+ (Info_Variable_Read): Removed.
+ (Info_Variable_Reference): New routine.
+ (Is_Suitable_Scenario): Variable references are now suitable scenarios
+ while variable reads are not.
+ (Output_Active_Scenarios): Add output for variable references and
+ remove output for variable reads.
+ (Output_Variable_Read): Removed.
+ (Output_Variable_Reference): New routine.
+ (Process_Variable_Read): Removed.
+ (Process_Variable_Reference): New routine.
+ (Process_Variable_Reference_Read): New routine.
+ * sem_elab.ads (Build_Variable_Reference_Marker): New routine.
+ * sem_res.adb (Resolve_Actuals): Build and record a variable reference
+ marker for the current actual.
+ * sem_spark.adb (Check_Node): Add an entry for node
+ N_Variable_Reference_Marker.
+ * sem_util.adb (Within_Subprogram_Call): Moved to the library level.
+ * sem_util.ads (Within_Subprogram_Call): Moved to the library level.
+ * sinfo.adb (Is_Read): New routine.
+ (Is_Write): New routine.
+ (Target): Updated to handle variable reference markers.
+ (Set_Is_Read): New routine.
+ (Set_Is_Write): New routine.
+ (Set_Target): Updated to handle variable reference markers.
+ * sinfo.ads: Add new attributes Is_Read and Is_Write along with
+ occurrences in nodes. Update attribute Target. Add new node
+ kind N_Variable_Reference_Marker.
+ (Is_Read): New routine along with pragma Inline.
+ (Is_Write): New routine along with pragma Inline.
+ (Set_Is_Read): New routine along with pragma Inline.
+ (Set_Is_Write): New routine along with pragma Inline.
+ * sprint.adb (Sprint_Node_Actual): Add an entry for node
+ N_Variable_Reference_Marker.
+
+2017-11-08 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_util.adb (Subprogram_Name): Append suffix for overloaded
+ subprograms.
+
+2017-11-08 Yannick Moy <moy@adacore.com>
+
+ * sem_ch8.adb (Use_One_Type, Update_Use_Clause_Chain): Do not report
+ about unused use-type or use-package clauses inside inlined bodies.
+
+2017-11-08 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_elab.adb (Ensure_Prior_Elaboration): Add new parameter
+ In_Partial_Fin along with a comment on its usage. Do not guarantee the
+ prior elaboration of a unit when the need came from a partial
+ finalization context.
+ (In_Initialization_Context): Relocated to Process_Call.
+ (Is_Partial_Finalization_Proc): New routine.
+ (Process_Access): Add new parameter In_Partial_Fin along with a comment
+ on its usage.
+ (Process_Activation_Call): Add new parameter In_Partial_Fin along with
+ a comment on its usage.
+ (Process_Activation_Conditional_ABE_Impl): Add new parameter
+ In_Partial_Fin along with a comment on its usage. Do not emit any ABE
+ diagnostics when the activation occurs in a partial finalization
+ context.
+ (Process_Activation_Guaranteed_ABE_Impl): Add new parameter
+ In_Partial_Fin along with a comment on its usage.
+ (Process_Call): Add new parameter In_Partial_Fin along with a comment
+ on its usage. A call is within a partial finalization context when it
+ targets a finalizer or primitive [Deep_]Finalize, and the call appears
+ in initialization actions. Pass this information down to the recursive
+ steps of the Processing phase.
+ (Process_Call_Ada): Add new parameter In_Partial_Fin along with a
+ comment on its usage. Remove the guard which suppresses the generation
+ of implicit Elaborate[_All] pragmas. This is now done in
+ Ensure_Prior_Elaboration.
+ (Process_Call_Conditional_ABE): Add new parameter In_Partial_Fin along
+ with a comment on its usage. Do not emit any ABE diagnostics when the
+ call occurs in a partial finalization context.
+ (Process_Call_SPARK): Add new parameter In_Partial_Fin along with a
+ comment on its usage.
+ (Process_Instantiation): Add new parameter In_Partial_Fin along with a
+ comment on its usage.
+ (Process_Instantiation_Ada): Add new parameter In_Partial_Fin along
+ with a comment on its usage.
+ (Process_Instantiation_Conditional_ABE): Add new parameter
+ In_Partial_Fin along with a comment on its usage. Do not emit any ABE
+ diagnostics when the instantiation occurs in a partial finalization
+ context.
+ (Process_Instantiation_SPARK): Add new parameter In_Partial_Fin along
+ with a comment on its usage.
+ (Process_Scenario): Add new parameter In_Partial_Fin along with a
+ comment on its usage.
+ (Process_Single_Activation): Add new parameter In_Partial_Fin along
+ with a comment on its usage.
+ (Traverse_Body): Add new parameter In_Partial_Fin along with a comment
+ on its usage.
+
+2017-11-08 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch13.adb: Add optional parameter to Error_Msg.
+
+2017-11-08 Jerome Lambourg <lambourg@adacore.com>
+
+ * fname.adb (Is_Internal_File_Name): Do not check the 8+3 naming schema
+ for the Interfaces.* hierarchy as longer unit names are now allowed.
+
+2017-11-08 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_util.adb (Subprogram_Name): Emit sloc for the enclosing
+ subprogram as well. Support more cases of entities.
+ (Append_Entity_Name): Add some defensive code.
+
+2017-11-06 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/misc.c (gnat_post_options): Clear warn_return_type.
+
2017-10-31 Eric Botcazou <ebotcazou@adacore.com>
PR ada/82785