generic.texi (ANNOTATE_EXPR): Document 3rd operand.
[gcc.git] / gcc / ada / ChangeLog
index 99d0702f02228e85177803a12a2b37dd47a4ac84..5a40cc14e5a028746b995b7c75c4176821a4c205 100644 (file)
+2017-11-23  Mike Stump  <mikestump@comcast.net>
+            Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (gnat_gimplify_stmt) <LOOP_STMT>: Pass 3rd
+       operand to ANNOTATE_EXPR and also pass unrolling hints.
+
+2017-11-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/83016
+       * gnatlink.adb (Process_Args): Accept multiple switches for --LINK.
+       (Usage): Adjust.
+       * gcc-interface/Makefile.in (GCC_LINK): Remove $(ADA_INCLUDES).
+       (common-tools): Pass $(CC) as --GCC= and $(GCC_LINK) as --LINK= in
+       the invocations of $(GNATLINK).
+       (../../gnatdll$(exeext)): Likewise.
+       (../../vxaddr2line$(exeext)): Likewise.
+       (gnatmake-re): Likewise.
+       (gnatlink-re): Likewise.
+
+2017-11-16  Doug Rupp  <rupp@adacore.com>
+
+       * gcc-interface/Makefile.in: Merge Aarch64 and ARM "ifeq" blocks.
+
+2017-11-16  Steve Baird  <baird@adacore.com>
+
+       * debug.adb: Update another comment to indicate gnat2scil's use of the
+       -gnatd.7 switch.
+
+2017-11-16  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in
+       the case of nested build-in-place calls.
+
+2017-11-16  Joel Brobecker  <brobecker@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Document the switches
+       available in gnatsymbolize.
+
+2017-11-16  Steve Baird  <baird@adacore.com>
+
+       * debug.adb: Update comment to indicate gnat2scil's use of the -gnatd.7
+       switch.
+
+2017-11-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, sem_ch6.adb,
+       sem_elab.adb: Minor editorial corrections.
+       * gnat_ugn.texi: Regenerate.
+
+2017-11-16  Joel Brobecker  <brobecker@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst (GNAT UGN): Add
+       gnatsymbolize documentation.
+       * gnat_ugn.texi: Regenerate.
+
+2017-11-16  Steve Baird  <baird@adacore.com>
+
+       * sem_ch3.adb (Build_Derived_Record_Type): Replace all uses of
+       "Scope (Parent_Type)" with "Scope (Parent_Base)".
+
+2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * opt.ads: Elaboration warnings are now on by default. Add a comment
+       explaining why this is needed.
+       * sem_ch9.adb (Analyze_Requeue): Preserve the status of elaboration
+       warnings.
+       * sem_ch12.adb (Analyze_Package_Instantiation): Preserve the status of
+       elaboration warnings.
+       (Analyze_Subprogram_Instantiation): Preserve the status of elaboration
+       warnings.
+       * sem_elab.adb: Update the structure of Call_Attributes and
+       Instantiation_Attributes.
+       (Build_Call_Marker): Propagate the status of elaboration warnings from
+       the call to the marker.
+       (Extract_Call_Attributes): Extract the status of elaboration warnings.
+       (Extract_Instantiation_Attributes): Extract the status of elaboration
+       warnings.
+       (Process_Conditional_ABE_Activation_Impl): Elaboration diagnostics are
+       now dependent on the status of elaboration warnings.
+       (Process_Conditional_ABE_Call_Ada): Elaboration diagnostics are now
+       dependent on the status of elaboration warnings.
+       (Process_Conditional_ABE_Instantiation_Ada): Elaboration diagnostics
+       are now dependent on the status of elaboration warnings.
+       (Process_Guaranteed_ABE_Activation_Impl): Remove pragma Unreferenced
+       for formal Call_Attrs. Elaboration diagnostics are now dependent on the
+       status of elaboration warnings.
+       (Process_Guaranteed_ABE_Call): Elaboration diagnostics are now
+       dependent on the status of elaboration warnings.
+       (Process_Guaranteed_ABE_Instantiation): Elaboration diagnostics are now
+       dependent on the status of elaboration warnings.
+       * sem_prag.adb (Analyze_Pragma): Remove the unjustified warning
+       concerning pragma Elaborate.
+       * sem_res.adb (Resolve_Call): Preserve the status of elaboration
+       warnings.
+       (Resolve_Entry_Call): Propagate flag Is_Elaboration_Warnings_OK_Node
+       from the procedure call to the entry call.
+       * sem_util.adb (Mark_Elaboration_Attributes): Add formal parameter
+       Warnings.
+       (Mark_Elaboration_Attributes_Node): Preserve the status of elaboration
+       warnings
+       * sem_util.ads (Mark_Elaboration_Attributes): Add formal parameter
+       Warnings. Update the comment on usage.
+       * sinfo.adb (Is_Dispatching_Call): Update to use Flag6.
+       (Is_Elaboration_Warnings_OK_Node): New routine.
+       (Set_Is_Dispatching_Call): Update to use Flag6.
+       (Set_Is_Elaboration_Warnings_OK_Node): New routine.
+       * sinfo.ads: Attribute Is_Dispatching_Call now uses Flag6. Add new
+       attribute Is_Elaboration_Warnings_OK_Node along with occurrences
+       in nodes.
+       (Is_Elaboration_Warnings_OK_Node): New routine along with pragma
+       Inline.
+       (Set_Is_Elaboration_Warnings_OK_Node): New routine along with pragma
+       Inline.
+       * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update various
+       sections to indicate how to suppress elaboration warnings.  Document
+       switches -gnatwl and -gnatwL.
+       * gnat_ugn.texi: Regenerate.
+
+2017-11-16  Sylvain Dailler  <dailler@adacore.com>
+
+       * sem_util.adb (Get_Enum_Lit_From_Pos): Add a condition for Pos
+       lower than 0.
+
+2017-11-16  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Check_Expr_Constants): Avoid error message in case of
+       System'To_Address.
+
+2017-11-16  Yannick Moy  <moy@adacore.com>
+
+       * sem_elab.adb (Include): Fix mode of parameter Curr to out.
+
+2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Is_CCT_Instance): Allow calls where
+       Context_Id denotes a record type.
+
+2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch8.adb (Check_SPARK_Primitive_Operation): Enable the check in
+       instantiations.
+
+2017-11-16  Doug Rupp  <rupp@adacore.com>
+
+       Initial gnat port to aarch64-wrs-vxworks7
+       * libgnarl/s-vxwork__aarch64.ads,
+       libgnat/system-vxworks7-aarch64-rtp-smp.ads,
+       libgnat/system-vxworks7-aarch64.ads: New files
+       * sigtramp-vxworks-target.inc (aarch64): New section.
+       * tracebak.c (USE_ARM_UNWINDING): Disable for ARMARCH8A.
+
+2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_elab.adb (Include): Including a node which is also a compilation
+       unit terminates the search because there are no more lists to examine.
+
+2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Ensure that a renaming
+       declaration does not define a primitive operation of a tagged type for
+       SPARK.
+       (Check_SPARK_Primitive_Operation): New routine.
+
+2017-11-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/a-elchha.adb (Last_Chance_Handler): Display Argv (0) in
+       message when using -E binder switch.
+
+2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * errout.ads: Fix minor typo in comment.
+
+2017-11-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Process_Subtype): If the subtype indication does not
+       syntactically denote a type, return Any_Type to prevent subsequent
+       compiler crashes or infinite loops.
+
+2017-11-16  Steve Baird  <baird@adacore.com>
+
+       * lib-writ.adb: Fix bug which causes Program_Error to be raised in some
+       cases when writing out a .ali file when a Rename_Pragma pragma is in
+       effect.
+       * lib-writ.adb (Write_Unit_Information): Replace call to
+       Pragma_Name_Unmapped with call to Pragma_Name.
+
+2017-11-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_elab.adb: Minor typo fixes.
+
+2017-11-16  Justin Squirek  <squirek@adacore.com>
+
+       * sem_res.adb (Resolve_Allocator): Correct warning messages and make
+       them more explicit.
+
+2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * atree.ads (Nkind_In): Add 10 and 11 parameter versions.
+       * checks.adb (Install_Primitive_Elaboration_Check): Mark the setting of
+       the elaboration flag as elaboration code.
+       * einfo.adb (Contract): Update the comments.
+       (Ignore_SPARK_Mode_Pragmas): Update the comments.
+       (SPARK_Aux_Pragma): Update the comments.
+       (SPARK_Aux_Pragma_Inherited): Update the comments.
+       (SPARK_Pragma): Update the comments. The attribute now applies
+       to all types and abstract states.
+       (SPARK_Pragma_Inherited): Update the comments. The attribute now
+       applies to all types and abstract states.
+       (Set_Contract): Update the comments.
+       (Set_Ignore_SPARK_Mode_Pragmas): Update the comments.
+       (Set_SPARK_Aux_Pragma): Update the comments.
+       (Set_SPARK_Aux_Pragma_Inherited): Update the comments.
+       (Set_SPARK_Pragma): Update the comments. The attribute now applies to
+       all types and abstract states.
+       (Set_SPARK_Pragma_Inherited): Update the comments. The attribute now
+       applies to all types and abstract states.
+       (Write_Field40_Name): Add output for SPARK_Pragma when it appears on a
+       type and abstract states.
+       * einfo.ads: Update the documentation of attributes SPARK_Pragma and
+       SPARK_Pragma_Inherited.  Both of them now apply to all types and
+       abstract states.
+       * exp_util.adb (Set_Elaboration_Flag): Mark the setting of the
+       elaboration flag as elaboration code.
+       * sem_ch3.adb: Add with and use clauses for Sem_Elab.
+       (Analyze_Full_Type_Declaration): Set the SPARK_Mode of the type. Record
+       a derived type for later processing by the ABE mechanism.
+       (Analyze_Incomplete_Type_Decl): Set the SPARK_Mode of the type.
+       (Analyze_Private_Extension_Declaration): Set the SPARK_Mode of the
+       type.
+       * sem_ch7.adb (Analyze_Private_Type_Declaration): Set the SPARK_Mode of
+       the type.
+       * sem_elab.adb: Define the term "early call region".  Update the
+       terminology for "scenario" and "target".  Update the architecture of
+       the ABE mechanism.  Update the steps which must be taken when adding a
+       new scenario.  Update the section on debugging ABE issues.  Add new
+       hash tables Early_Call_Regions and Recorded_SPARK_Scenarios.  Add new
+       table SPARK_Scenarios.  Hash table Elaboration_Context is now
+       Elaboration_Statuses.  The majority of Process_xxx routines have been
+       updated to better reflect their role.
+       (Add_Unit): Reimplemented.
+       (Check_Elaboration_Constituent): New routine.
+       (Check_Elaboration_Scenarios): Verify previously recorded scenarios for
+       conditional ABE issues. Verify previously recorded SPARK scenarios.
+       (Check_SPARK_Derived_Type): New routine.
+       (Check_SPARK_Instantiation): New routine.
+       (Check_SPARK_Scenario): New routine.
+       (Check_SPARK_Refined_State_Pragma): New routine.
+       (Early_Call_Region): New routine.
+       (Elaboration_Status): New routine.
+       (Ensure_Prior_Elaboration): Add new formal parameter Prag_Nam. The
+       implicit Elabotate[_All] pragma is now specified via Prag_Nam.
+       (Find_Early_Call_Region): New routine.
+       (Info_Scenario): Add output for refinement constituents.
+       (Is_Recorded_SPARK_Scenario): New routine.
+       (Is_Suitable_SPARK_Derived_Type): New routine.
+       (Is_Suitable_SPARK_Instantiation): New routine.
+       (Is_Suitable_SPARK_Refined_State_Pragma): New routine.
+       (Is_Visited_Body): New routine.
+       (Kill_Elaboration_Scenario): Reimplemented.
+       (Output_Active_Scenarios): Add output for pragma Refined_State.
+       (Output_SPARK_Refined_State_Pragma): New routine.
+       (Process_Conditional_ABE_Call): Remove the use of -gnatd.v. The effect
+       is now achieved by different means.
+       (Process_Conditional_ABE_Call_SPARK): Verify that a call which precedes
+       the subprogram body appears within the early call region of the body.
+       Either ensure the prior elaboration of external subprograms or verify
+       that the context meets the suitable elaboration requirement.
+       (Process_Conditional_ABE_Instantiation_SPARK): New routine.
+       (Record_Elaboration_Scenario): Reimplement the portion which enforces
+       the level restrictions of the static model. Add support for SPARK
+       scenarios.
+       (Record_SPARK_Elaboration_Scenario): New routine.
+       (Reset_Visited_Bodies): New routine.
+       (Set_Early_Call_Region): New routine.
+       (Set_Elaboration_Status): New routine.
+       (Set_Is_Recorded_SPARK_Scenario): New routine.
+       (Update_Elaboration_Scenario): Reimplemented.
+       * sem_elab.ads: Add new subtype Library_Or_Instantiation_Level.
+       * sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Save the pragma
+       for examination by the ABE Processing phase.
+       (Create_Abstract_State): Save the SPARK_Mode from the context.
+       * sem_util.adb (Is_Non_Preelaborable_Construct): New routine.
+       * sem_util.ads (Is_Non_Preelaborable_Construct): New routine.
+       * sinfo.adb (Is_Elaboration_Code): New routine.
+       (Set_Is_Elaboration_Code): New routine.
+       (Nkind_In): Add 10 and 11 parameter versions.
+       * sinfo.ads: Add new attribute Is_Elaboration_Code along with
+       occurrences in nodes.
+       (Is_Elaboration_Code): New routine along with pragma Inline.
+       (Set_Is_Elaboration_Code): New routine along with pragma Inline.
+       (Nkind_In): Add 10 and 11 parameter versions.
+
+2017-11-16  Justin Squirek  <squirek@adacore.com>
+
+       * sem.adb (Analyze): Remove requirement that the original node of N be
+       an operator in the case that analysis on the node yields the relevant
+       operator - so prefer it instead.
+
+2017-11-16  Bob Duff  <duff@adacore.com>
+
+       * sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access
+       formal must not have a designated type that is the full view coming
+       from a limited-with'ed package.
+       * sem_util.adb,sem_util.ads (Incomplete_View_From_Limited_With): New
+       function called from sem_ch6.
+       * sem_ch5.adb (Analyze_Assignment): Treat user-defined concatenation
+       specially for b-i-p cases.
+
+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
+       * gcc-interface/Makefile.in (m68k/Linux): Fix typo.
+
+2017-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/Makefile.in: Remove bogus settings for VxWorks.
+
+2017-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.c (pad_type_hash): Use hashval_t for hash value.
+       (convert): Do not use an unchecked conversion for converting from a
+       type to another type padding it.
+
+2017-10-20  Doug Rupp  <rupp@adacore.com>
+
+       * libgnarl/s-osinte__linux.ads (Relative_Timed_Wait): Add variable
+       needed for using monotonic clock.
+       * libgnarl/s-taprop__linux.adb: Revert previous monotonic clock
+       changes.
+       * libgnarl/s-taprop__linux.adb, s-taprop__posix.adb: Unify and factor
+       out monotonic clock related functions body.
+       (Timed_Sleep, Timed_Delay, Montonic_Clock, RT_Resolution,
+       Compute_Deadline): Move to...
+       * libgnarl/s-tpopmo.adb: ... here. New separate package body.
+
+2017-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Is_Controlling_Limited_Procedure): Handle properly the
+       case where the controlling formal is an anonymous access to interface
+       type.
+       * exp_ch9.adb (Extract_Dispatching_Call): If controlling actual is an
+       access type, handle properly the the constructed dereference that
+       designates the object used in the rewritten synchronized call.
+       (Parameter_Block_Pack): If the type of the actual is by-copy, its
+       generated declaration in the parameter block does not need an
+       initialization even if the type is a null-excluding access type,
+       because it will be initialized with the value of the actual later on.
+       (Parameter_Block_Pack): Do not add controlling actual to parameter
+       block when its type is by-copy.
+
+2017-10-20  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch8.adb (Update_Use_Clause_Chain): Add sanity check to verify
+       scope stack traversal into the context clause.
+
+2017-10-20  Bob Duff  <duff@adacore.com>
+
+       * sinfo.ads: Fix a comment typo.
+
+2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-flto): Add
+       warning against usage in conjunction with -gnatn.
+       (-fdump-xref): Delete entry.
+       * doc/gnat_ugn/gnat_utility_programs.rst (--ext): Remove mention of
+       -fdump-xref switch.
+       * gnat_ugn.texi: Regenerate.
+
+2017-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_type.adb, exp_util.adb, sem_util.adb, sem_dim.adb, sem_elab.adb:
+       Minor reformatting.
+
+2017-10-20  Yannick Moy  <moy@adacore.com>
+
+       * sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to
+       compare a dimensioned expression with a literal.
+       (Dim_Warning_For_Numeric_Literal): Do not issue a warning for the
+       special value zero.
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Update description of
+       dimensionality system in GNAT.
+       * gnat_ugn.texi: Regenerate.
+
+2017-10-20  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch6.adb (Analyze_Expression_Function.Freeze_Expr_Types): Remove
+       inadequate silencing of errors.
+       * sem_util.adb (Check_Part_Of_Reference): Do not issue an error when
+       checking the subprogram body generated from an expression function,
+       when this is done as part of the preanalysis done on expression
+       functions, as the subprogram body may not yet be attached in the AST.
+       The error if any will be issued later during the analysis of the body.
+       (Is_Aliased_View): Trivial rewrite with Is_Formal_Object.
+
+2017-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Update_Chain_In_Scope): Add missing [-gnatwu] marker for
+       warning on ineffective use clause.
+
+2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch11.ads (Warn_If_No_Local_Raise): Declare.
+       * exp_ch11.adb (Expand_Exception_Handlers): Use Warn_If_No_Local_Raise
+       to issue the warning on the absence of local raise.
+       (Possible_Local_Raise): Do not issue the warning for Call_Markers.
+       (Warn_If_No_Local_Raise): New procedure to issue the warning on the
+       absence of local raise.
+       * sem_elab.adb: Add with and use clauses for Exp_Ch11.
+       (Record_Elaboration_Scenario): Call Possible_Local_Raise in the cases
+       where a scenario could give rise to raising Program_Error.
+       * sem_elab.adb: Typo fixes.
+       * fe.h (Warn_If_No_Local_Raise): Declare.
+       * gcc-interface/gigi.h (get_exception_label): Change return type.
+       * gcc-interface/trans.c (gnu_constraint_error_label_stack): Change to
+       simple vector of Entity_Id.
+       (gnu_storage_error_label_stack): Likewise.
+       (gnu_program_error_label_stack): Likewise.
+       (gigi): Adjust to above changes.
+       (Raise_Error_to_gnu): Likewise.
+       (gnat_to_gnu) <N_Goto_Statement>: Set TREE_USED on the label.
+       (N_Push_Constraint_Error_Label): Push the label onto the stack.
+       (N_Push_Storage_Error_Label): Likewise.
+       (N_Push_Program_Error_Label): Likewise.
+       (N_Pop_Constraint_Error_Label): Pop the label from the stack and issue
+       a warning on the absence of local raise.
+       (N_Pop_Storage_Error_Label): Likewise.
+       (N_Pop_Program_Error_Label): Likewise.
+       (push_exception_label_stack): Delete.
+       (get_exception_label): Change return type to Entity_Id and adjust.
+       * gcc-interface/utils2.c (build_goto_raise): Change type of first
+       parameter to Entity_Id and adjust.  Set TREE_USED on the label.
+       (build_call_raise): Adjust calls to get_exception_label and also
+       build_goto_raise.
+       (build_call_raise_column): Likewise.
+       (build_call_raise_range): Likewise.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.x):
+       Document actual default behavior.
+
+2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.ads: Minor consistent punctuation in comment.  All numbered
+       items in the comment of Is_Internal are now terminated with a period.
+
+2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Build_Temporary): Mark created temporary entity as
+       internal.
+
+2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_type.adb (In_Generic_Actual): Simplified.
+
+2017-10-20  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch12.adb (Check_Formal_Package_Instance): Add sanity check to
+       verify a renaming exists for a generic formal before comparing it to
+       the actual as defaulted formals will not have a renamed_object.
+
+2017-10-20  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (Replace_Returns): Fix wrong management of
+       N_Block_Statement nodes.
+
+2017-10-20  Bob Duff  <duff@adacore.com>
+
+       * exp_aggr.adb (Initialize_Array_Component): Avoid adjusting a
+       component of an array aggregate if it is initialized by a
+       build-in-place function call.
+       * exp_ch6.adb (Is_Build_In_Place_Result_Type): Use -gnatd.9 to disable
+       bip for nonlimited types.
+       * debug.adb: Document -gnatd.9.
+
+2017-10-20  Bob Duff  <duff@adacore.com>
+
+       * sem_ch12.adb: Remove redundant setting of Parent.
+
+2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Find_Concatenation_Types): Filter out operators if one
+       of the operands is a string literal.
+
+2017-10-20  Bob Duff  <duff@adacore.com>
+
+       * einfo.ads: Comment fix.
+
+2017-10-20  Clement Fumex  <fumex@adacore.com>
+
+       * switch-c.adb: Remove -gnatwm from the switches triggered by -gnateC.
+
+2017-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_dim.adb (Extract_Power): Accept dimension values that are not
+       non-negative integers when the dimensioned base type is an Integer
+       type.
+
+2017-10-20  Bob Duff  <duff@adacore.com>
+
+       * sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate
+       that an allocator came from a b-i-p return statement.
+       * exp_ch4.adb (Expand_Allocator_Expression): Avoid adjusting the return
+       object of a nonlimited build-in-place function call.
+       * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set the
+       Alloc_For_BIP_Return flag on generated allocators.
+       * sem_ch5.adb (Analyze_Assignment): Move Assert to where it can't fail.
+       If the N_Assignment_Statement has been transformed into something else,
+       then Should_Transform_BIP_Assignment won't work.
+       * exp_ch3.adb (Expand_N_Object_Declaration): A previous revision said,
+       "Remove Adjust if we're building the return object of an extended
+       return statement in place." Back out that part of the change, because
+       the Alloc_For_BIP_Return flag is now used for that.
+
+2017-10-19  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ"
+       should be "T".  Handle case of a subtype of a class-wide type.
+
+2017-10-19  Bob Duff  <duff@adacore.com>
+
+       * exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify
+       which node kinds can legitimately be ignored, and raise Program_Error
+       for others.
+
+2017-10-19  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_elab.adb (Compilation_Unit): Handle the case of a subprogram
+       instantiation that acts as a compilation unit.
+       (Find_Code_Unit): Reimplemented.
+       (Find_Top_Unit): Reimplemented.
+       (Find_Unit_Entity): New routine.
+       (Process_Instantiation_SPARK): Correct the elaboration requirement a
+       package instantiation imposes on a unit.
+
+2017-10-19  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place
+       for a narrow set of controlled types.
+
+2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sinput.ads (Line_Start): Add pragma Inline.
+       * widechar.ads (Is_Start_Of_Wide_Char): Likewise.
+
+2017-10-19  Bob Duff  <duff@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Disable
+       Make_Build_In_Place_Call_... for F(...)'Old, where F(...) is a
+       build-in-place function call so that the temp is declared in the right
+       place.
+
+2017-10-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/misc.c (gnat_tree_size): Move around.
+
+       * gcc-interface/utils.c (max_size): Deal with SSA names.
+
+2017-10-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc-interface/misc.c (gnat_tree_size): New function.
+       (LANG_HOOKS_TREE_SIZE): Redefine.
+
+2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_elab.adb (In_Preelaborated_Context): A generic package subject to
+       Remote_Call_Interface is not a suitable preelaboratd context when the
+       call appears in the package body.
+
+2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0.
+       * layout.adb (Set_Elem_Alignment): Likewise.  Use M name as maximum
+       alignment for consistency.  If Align is non-zero, use the minimum of
+       Align and M for the alignment.
+       * cstand.adb (Build_Float_Type): Use Set_Elem_Alignment instead of
+       setting the alignment directly.
+
+2017-10-14  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma, case Check): Defer evaluation of the
+       optional string in an Assert pragma until the expansion of the pragma
+       has rewritten it as a conditional statement, so that the string
+       argument is only evaluaed if the assertion fails. This is mandated by
+       RM 11.4.2.
+
+2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * debug.adb: Switch -gnatd.v and associated flag are now used to
+       enforce the SPARK rules for elaboration in SPARK code.
+       * sem_elab.adb: Describe switch -gnatd.v.
+       (Process_Call): Verify the SPARK rules only when -gnatd.v is in effect.
+       (Process_Instantiation): Verify the SPARK rules only when -gnatd.v is
+       in effect.
+       (Process_Variable_Assignment): Clarify why variable assignments are
+       processed reglardless of whether -gnatd.v is in effect.
+       * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the
+       sections on elaboration code and compilation switches.
+       * gnat_ugn.texi: Regenerate.
+
+2017-10-14  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb,
+       sem_warn.adb: Minor reformattings.
+
+2017-10-14  Ed Schonberg  <schonberg@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_aspects.rst: Add documentation
+       for reverse iteration over formal containers.
+       * gnat_rm.texi: Regenerate.
+
+2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_elab.adb (Ensure_Dynamic_Prior_Elaboration): Renamed to
+       Ensure_Prior_Elaboration_Dynamic for consistency reasons.
+       (Ensure_Static_Prior_Elaboration): Renamed to
+       Ensure_Prior_Elaboration_Static for consistency reasons.
+       (Info_Variable_Reference): Renamed to Info_Variable_Read in order to
+       reflect its new purpose.
+       (Is_Initialized): New routine.
+       (Is_Suitable_Variable_Reference): Renamed to Is_Suitable_Variable_Read
+       in order to reflect its new purpose.
+       (Is_Variable_Read): New routine.
+       (Output_Variable_Reference): Renamed to Output_Variable_Read in order
+       to reflect its new purpose.
+       (Process_Variable_Assignment): This routine now acts as a top level
+       dispatcher for variable assignments.
+       (Process_Variable_Assignment_Ada): New routine.
+       (Process_Variable_Assignment_SPARK): New routine.
+       (Process_Variable_Reference): Renamed to Process_Variable_Read in order
+       to reflects its new purpose. A reference to a variable is now suitable
+       for ABE processing only when it is a read. The logic in the routine now
+       reflects the latest SPARK elaboration rules.
+
+2017-10-14  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Modify condition that
+       triggers marking on formal subprograms.
+
+2017-10-14  Javier Miranda  <miranda@adacore.com>
+
+       * checks.adb (Ensure_Valid): Do not skip adding the validity check on
+       renamings of objects that come from the sources.
+
+2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cstand.adb (Build_Float_Type): Move down Siz parameter, add Align
+       parameter and set the alignment of the type to Align.
+       (Copy_Float_Type): Adjust call to Build_Float_Type.
+       (Register_Float_Type): Add pragma Unreferenced for Precision.  Adjust
+       call to Build_Float_Type and do not set RM_Size and Alignment.
+
+2017-10-14  Patrick Bernardi  <bernardi@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to
+       GNATRTL_NONTASKING_OBJ.
+
+2017-10-14  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for
+       enabling b-i-p for nonlimited controlled types (but disabled).
+
+2017-10-14  Justin Squirek  <squirek@adacore.com>
+
+       * sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to
+       Has_Warnings_Off with Warnings_Off.
+
+2017-10-14  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment.
+
+2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
+       enclosing package at the end of the visible declarations.
+       * sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of
+       an initialization item which is undefined due to some illegality.
+
+2017-10-14  Patrick Bernardi  <bernardi@adacore.com>
+
+       * ali.adb: Add new ALI line 'T' to read the number of tasks contain
+       within each unit that require a default-sized primary and secondary
+       stack to be generated by the binder.
+       (Scan_ALI): Scan new 'T' lines.
+       * ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record.
+       * bindgen.adb (Gen_Output_File): Count the number of default-sized
+       stacks within the closure that are to be created by the binder.
+       (Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary
+       stacks and record these in System.Secodnary_Stack.
+       (Resolve_Binder_Options): Check if System.Secondary_Stack is in the
+       closure of the program being bound.
+       * bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment.
+       * exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine.
+       (Expand_N_Object_Declaration): Count the number of default-sized stacks
+       used by task objects contained within the object whose declaration is
+       being expanded.  Only performed when either the restrictions
+       No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in
+       effect.
+       * exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine.
+       (Expand_N_Task_Type_Declaration): Create a secondary stack as part of
+       the expansion of a task type if the size of the stack is known at
+       run-time and the restrictions No_Implicit_Heap_Allocations or
+       No_Implicit_Task_Allocations are in effect.
+       (Make_Task_Create_Call): If using a restricted profile provide
+       secondary stack parameter: either the statically created stack or null.
+       * lib-load.adb (Create_Dummy_Package_Unit, Load_Unit,
+       Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in
+       Unit_Record initialization expressions.
+       * lib-writ.adb (Add_Preprocessing_Dependency,
+       Ensure_System_Dependency): Include Primary_Stack_Count and
+       Sec_Stack_Count in Unit_Record initialization expression.
+       (Write_ALI): Write T lines.
+       (Write_Unit_Information): Do not output 'T' lines if there are no
+       stacks for the binder to generate.
+       * lib-writ.ads: Updated library information documentation to include
+       new T line entry.
+       * lib.adb (Increment_Primary_Stack_Count): New routine.
+       (Increment_Sec_Stack_Count): New routine.
+       (Primary_Stack_Count): New routine.
+       (Sec_Stack_Count): New routine.
+       * lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to
+       Unit_Record and updated documentation.
+       (Increment_Primary_Stack_Count): New routine along with pragma Inline.
+       (Increment_Sec_Stack_Count): New routine along with pragma Inline.
+       (Primary_Stack_Count): New routine along with pragma Inline.
+       (Sec_Stack_Count): New routine along with pragma Inline.
+       * opt.ads: New constant No_Stack_Size.  Flag Default_Stack_Size
+       redefined.  New flag Default_Sec_Stack_Size and
+       Quantity_Of_Default_Size_Sec_Stacks.
+       * rtfinal.c Fixed erroneous comment.
+       * rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from
+       System.Secondary_Stack to System.Parameters.  Add RE_SS_Stack.
+       * sem_util.adb (Number_Of_Elements_In_Array): New routine.
+       * sem_util.ads (Number_Of_Elements_In_Array): New routine.
+       * switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch.
+       * libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine.
+       (Set_Sec_Stack_Addr): Removed routine.
+       (Get_Sec_Stack): New routine.
+       (Set_Sec_Stack): New routine.
+       (Init_Tasking_Soft_Links): Update System.Soft_Links reference to
+       reflect new procedure and global names.
+       * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
+       libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb,
+       libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update
+       parameter profile to allow the secondary stack size to be specified.
+       * libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter
+       profile to include Sec_Stack_Address.  Update Tasking.Initialize_ATCB
+       call to remove Secondary_Stack_Size reference.  Add secondary stack
+       address and size to SSL.Create_TSD call.
+       (Task_Wrapper): Remove secondary stack creation.
+       * libgnarl/s-tarest.ads (Create_Restricted_Task,
+       Create_Restricted_Task_Sequential): Update parameter profile to include
+       Sec_Stack_Address and clarify the Size parameter.
+       * libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size
+       from profile and body.
+       (Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call.
+       * libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from
+       Common_ATCB.
+       (Initialize_ATCB): Update the parameter profile to remove
+       Secondary_Stack_Size.
+       * libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and
+       call to Initialize_ATCB.  Add secondary stack address and size to
+       SSL.Create_TSD call, and catch any storage exception from the call.
+       (Finalize_Global_Tasks): Update System.Soft_Links references to reflect
+       new subprogram and component names.
+       (Task_Wrapper): Remove secondary stack creation.
+       (Vulnerable_Complete_Master): Update to reflect TSD changes.
+       * libgnarl/s-tassta.ads: Reformat comments.
+       (Create_Task): Update parameter profile.
+       * libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter
+       profile to include secondary stack size. Remove secondary size
+       parameter from Initialize_ATCB call and add it to Create_TSD call.
+       * libgnat/s-parame.adb, libgnat/s-parame__rtems.adb,
+       libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine.
+       * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
+       libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type
+       Percentage.  Remove constants Dynamic, Sec_Stack_Percentage and
+       Sec_Stack_Dynamic.  Add constant Runtime_Default_Sec_Stack_Size and
+       Sec_Stack_Dynamic.
+       (Default_Sec_Stack_Size): New routine.
+       * libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is
+       now Preelaborate.
+       * libgnat/s-soflin.adb: Removed unused with-clauses.  With
+       System.Soft_Links.Initialize to initialize non-tasking TSD.
+       (Create_TSD): Update parameter profile. Initialize the TSD and
+       unconditionally call SS_Init.
+       (Destroy_TSD): Update SST.SS_Free call.
+       (Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT,
+       Set_Sec_Stack_Addr_Soft): Remove routines.
+       (Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT,
+       Set_Sec_Stack_Soft): Add routines.
+       (NT_TSD): Move to private part of package specification.
+       * libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call
+       with suppressed access checks.  Renamed *_Sec_Stack_Addr_* routines and
+       objects to *_Sec_Stack_*.  TSD: removed warning suppression and
+       component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr.
+       (Create_TSD): Update parameter profile.
+       (NT_TSD): Move to private section from body.
+       * libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files.
+       * libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile.
+       * libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr):
+       Remove routine.
+       (Get_Sec_Stack, Set_Sec_Stack): Add routine.
+       (Thread_Body_Enter): Update parameter profile and body to adapt to new
+       System.Secondary_Stack.
+       (Init_RTS): Update body for new System.Soft_Links names.
+       * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
+       s-soliin.o.
+
+2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * gcc-interface/decl.c (annotate_value): Use wi::to_wide when
+       operating on trees as wide_ints.
+
+2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_unit.adb (Find_Enclosing_Scope): Do not treat a block statement
+       as a scoping construct when it is byproduct of exception handling.
+
+2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sinfo.ads: Update table Is_Syntactic_Field to reflect the nature of
+       semantic field Target of node N_Call_Marker.
+
+2017-10-09  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Allocator): Reject properly an allocator that
+       attempts to copy a limited value, when the allocator is the expression
+       in an expression function.
+
+2017-10-09  Joel Brobecker  <brobecker@adacore.com>
+
+       * doc/share/conf.py: Tell the style checker that this is a Python
+       fragment, and therefore that pyflakes should not be run to validate
+       this file.
+
+2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Is_Boolean_Type): Add pragma Inline.
+       (Is_Entity_Name): Likewise.
+       (Is_String_Type): Likewise.
+       * sem_type.adb (Full_View_Covers): Do not test Is_Private_Type here
+       and remove useless comparisons on the base types.
+       (Covers): Use simple tests for Standard_Void_Type.  Move up cheap tests
+       on T2.  Always test Is_Private_Type before Full_View_Covers.
+
+2017-10-09  Bob Duff  <duff@adacore.com>
+
+       * exp_ch4.adb: Minor refactoring.
+
+2017-10-09  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch3.adb (Replace_Components): Browse the list of discriminants,
+       not components.
+
+2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_elab.adb (Static_Elaboration_Checks): Elaboration requirements
+       are verified only in the static model.
+
+2017-10-09  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specification,
+       Check_Reverse_Iteration): Check that the domain of iteration supports
+       reverse iteration when it is a formal container.  This requires the
+       presence of a Previous primitive in the Iterable aspect.
+       * sem_ch13.adb (Resolve_Iterable_Operation): Verify legality of
+       primitives Last and Previous to support reverse iteration over formal
+       containers.
+       (Validate_Iterable_Aspect): Add check for reverse iteration operations.
+       * exp_ch5.adb (Build_Formal_Container_Iteration): Add proper expansion
+       for reverse iteration using primitives Last and Previous in generated
+       loop.
+
+2017-10-09  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Subprogram_Name): If this is a child unit, use the name
+       of the Defining_Program_Unit_Name, which is an identifier, in order to
+       construct the string for the fully qualified name.
+
 2017-10-09  Justin Squirek  <squirek@adacore.com>
 
        * sem_ch3.adb: Rename Uses_Unseen_Priv into