+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