1. 27 Apr, 2017 40 commits
    • Make-lang.in: Define EH_MECHANISM while building raise-gcc.c. · a96eb6f2
      2017-04-27  Tristan Gingold  <gingold@adacore.com>
      
      	* gcc-interface/Make-lang.in: Define EH_MECHANISM while building
      	raise-gcc.c. Fix include search path for raise-gcc.c
      
      From-SVN: r247339
      Tristan Gingold committed
    • [multiple changes] · 8ab31c0c
      2017-04-27  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* fe.h (Warn_On_Questionable_Layout): Declare.
      	* warnsw.ads (Warn_On_Record_Holes): Move down.
      	(Warn_On_Questionable_Layout): New boolean variable.
      	(Warning_Record): Add Warn_On_Questionable_Layout field.
      	* warnsw.adb (All_Warnings): Set Warn_On_Questionable_Layout.
      	(Restore_Warnings): Likewise.
      	(Save_Warnings): Likewise.
      	(Set_Dot_Warning_Switch): Handle 'q' and 'Q' letters.
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to
      	components_to_record.
      	(gnu_field_to_gnat): New function.
      	(warn_on_field_placement): Likewise.
      	(components_to_record): Add GNAT_RECORD_TYPE and remove REORDER
      	parameters.  Rename local variables and adjust recursive call.
      	Rework final scan of the field list and implement warnings on the
      	problematic placement of specific sorts of fields.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* errout.adb, exp_aggr.adb, exp_attr.adb, exp_code.adb, fname.adb,
      	* fname.ads, freeze.adb, inline.adb, lib.adb, lib.ads, lib-list.adb,
      	* lib-load.adb, lib-writ.adb, par.adb, restrict.adb, rtsfind.adb,
      	* sem.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb,
      	* sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
      	* sem_intr.adb, sem_res.adb, sem_util.adb, sem_warn.adb, sprint.adb:
      	For efficiency, cache results of Is_Internal_File_Name and
      	Is_Predefined_File_Name in the Units table. This avoids a lot
      	of repeated text processing.
      
      2017-04-27  Emmanuel Briot  <briot@adacore.com>
      
      	* g-comlin.adb (Sort_Sections): remove useless test.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfhase.adb, a-cfhase.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions that are
      	used in subprogram contracts.
      	(Current_To_Last): Removed, model functions should be used instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Strict_Equal): Removed, model functions should be used instead.
      	(No_Overlap): Removed, model functions should be used instead.
      	(Equivalent_Keys): Functions over cursors are removed. They were
      	awkward with explicit container parameters.
      	* a-cforse.adb, a-cforse.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions that
      	are used in subprogram contracts.
      	(Current_To_Last): Removed, model functions should be used instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Strict_Equal): Removed, model functions should be used instead.
      	(No_Overlap): Removed, model functions should be used instead.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb: Code cleanup.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb (Replace_Entity): The prefix of a 'Result
      	attribute reference in a post- condition is the subprogram to
      	which the condition applies. If the condition is inherited
      	by a type extension, the prefix becomes a reference to the
      	inherited operation, but there is no need to create a wrapper
      	for this operation, because 'Result is expanded independently
      	when elaborating the postconditions.
      
      From-SVN: r247338
      Arnaud Charlet committed
    • sinput.adb: Minor code cleanup. · a2168462
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* sinput.adb: Minor code cleanup.
      	* namet.adb (Append): Create faster versions of
      	Append(String) and Append(Name_Id) by using slice assignment
      	instead of loops.
      	* sem_util.adb (In_Instance): Speed this up by removing
      	unnecessary tests; Is_Generic_Instance is defined for all
      	entities.
      	* sem_util.ads, sem_util.adb (In_Parameter_Specification):
      	Remove unused function.
      	* alloc.ads (Nodes_Initial): Use a much larger value, because
      	the compiler was spending a lot of time copying the nodes table
      	when it grows. This number was chosen in 1996, so is rather out
      	of date with current memory sizes. Anyway, it's virtual memory.
      	Get rid of Orig_Nodes_...; use Node_... instead.
      	* atree.adb (Lock): Do not release the Nodes tables; it's a
      	waste of time.
      	Orig_Nodes_ ==> Nodes_
      	* nlists.adb: Orig_Nodes_ ==> Nodes_
      	* g-table.adb: Remove unused "with" clause.
      	* g-table.ads, table.ads: Remove Big_Table_Type, which should
      	not be used by clients.
      	* g-dyntab.adb (Last_Allocated): New function
      	to encapsulate T.P.Last_Allocated, which I'm thinking of changing.
      
      From-SVN: r247335
      Bob Duff committed
    • re PR c++/80534 (7.1 RC - internal compiler error: in finish_member_declaration,… · f8a36447
      re PR c++/80534 (7.1 RC - internal compiler error: in finish_member_declaration, at cp/semantics.c:2963)
      
      	PR c++/80534
      	* tree.c (type_cache_hasher::equal): Only compare
      	TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
      	(build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
      	non-aggregate element types.
      	* tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
      	about the flag on ARRAY_TYPEs in the comment, formatting fix.
      c-family/
      	* c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
      	flag on non-aggregate element types.
      testsuite/
      	* g++.dg/other/pr80534-1.C: New test.
      	* g++.dg/other/pr80534-2.C: New test.
      
      From-SVN: r247334
      Jakub Jelinek committed
    • [multiple changes] · 304757d2
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_eval.adb (Subtypes_Statically_Compatible): Remove duplicated
      	check.
      	(Subtypes_Statically_Match): Remove duplicate check.
      	* sem_prag.adb (Check_Arg_Is_External_Name): Remove duplicate check.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_aggr.adb (Replace_Type): Remove the special processing
      	for selected components.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Merge the
      	processing for attributes Fixed_Value and Integer_Value.
      	* exp_util.adb (Side_Effect_Free): Merge the processing for
      	qualified expressions, type conversions, and unchecked type
      	conversions.
      	* g-comlin.adb (Is_In_Config): Merge the processing for No_Space
      	and Optional.
      	* par-ch3.adb (P_Declarative_Items): Merge the processing for
      	tokens function, not, overriding, and procedure.
      	* sem_ch6.adb (Fully_Conformant_Expressions): Merge the processing
      	for qualified expressions, type conversions, and unchecked
      	type conversions.
      	* sem_util.adb (Compile_Time_Constraint_Error): Merge the
      	processing for Ada 83 and instances.
      	(Object_Access_Level): Merge the processing for indexed components
      	and selected components.
      	* uname.adb (Add_Node_Name): Merge the processing for stubs.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Install_Primitive_Elaboration_Check):
      	Do not generate the check when restriction No_Elaboration_Code
      	is in effect.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_disp.adb (Build_Class_Wide_Check): New subsidiary
      	of Expand_Dispatching_Call. If the denoted subprogram has a
      	class-wide precondition, this is the only precondition that
      	applies to the call, rather that the class-wide preconditions
      	that may apply to the body that is executed. (This is specified
      	in AI12-0195).
      
      From-SVN: r247333
      Arnaud Charlet committed
    • [multiple changes] · bfc37f37
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Issue
      	a warning in GNATprove mode if the runtime library does not
      	support IEEE-754 floats.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Inherit_Class_Wide_Pre): If the parent operation
      	is itself inherited it does not carry any contract information,
      	so examine its parent operation which is its Alias.
      
      From-SVN: r247332
      Arnaud Charlet committed
    • [multiple changes] · 9dd8f36f
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute, case 'Image): In Ada2012 the
      	prefix can be an object reference in which case Obj'Image (X)
      	can only be interpreted as an indexing of the parameterless
      	version of the attribute.
      	* par-ch4.adb (P_Name): An attribute reference can be the prefix of
      	an indexing or a slice operation if the attribute does not require
      	parameters. In Ada2012 'Image also belongs in this category,
      	and A'Image (lo .. hi) is legal and must be parsed as a slice.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* exp_ch4.adb: Minor reformatting.
      	* gnat1drv.adb (Adjust_Global_Switches): When in GNATprove mode,
      	disable the CodePeer and C generation modes. Similar to the
      	opposite actions done in CodePeer mode.
      
      From-SVN: r247331
      Arnaud Charlet committed
    • [multiple changes] · 7327f5c2
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* sem_res.adb: Remove duplicate code.
      	* sem_attr.adb: Delete duplicate code.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.adb: Reduce the amount of copying in
      	Release. No need to copy items past Last.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb Add with and use clauses for Sem_Disp.
      	(Install_Primitive_Elaboration_Check): New routine.
      	* checks.ads (Install_Primitive_Elaboration_Check): New routine.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Clean up the
      	processing of 'Elaborated.
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Install a primitive
      	elaboration check.
      
      From-SVN: r247330
      Arnaud Charlet committed
    • g-dyntab.ads, [...]: Remove incorrect assertion. · 7494697b
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb, g-table.ads: Remove incorrect assertion.
      	If the table grows and then shrinks back to empty, we won't necessarily
      	point back to the empty array. Code cleanups.
      	* sinput.ads: Add 'Base to Size clause to match the declared
      	component subtypes.
      
      From-SVN: r247329
      Bob Duff committed
    • a-cforma.adb, [...] (=): Generic parameter removed to allow the use of regular… · f2acfbce
      a-cforma.adb, [...] (=): Generic parameter removed to allow the use of regular equality over elements in...
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cforma.adb, a-cforma.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions that
      	are used in subprogram contracts.
      	(Current_To_Last): Removed, model functions should be used instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Strict_Equal): Removed, model functions should be used instead.
      	(No_Overlap): Removed, model functions should be used instead.
      	* a-cofuma.adb, a-cofuma.ads (Enable_Handling_Of_Equivalence)
      	Boolean generic parameter to disable contracts for equivalence
      	between keys.
      	(Witness): Create a witness of a key that is used for handling of
      	equivalence between keys.
      	(Has_Witness): Check whether a witness is contained in a map.
      	(W_Get): Get the element associated to a witness.
      	(Lift_Equivalent_Keys): Removed, equivalence between keys is handled
      	directly.
      	* a-cofuse.adb, a-cofuse.ads (Enable_Handling_Of_Equivalence)
      	Boolean generic parameter to disable contracts for equivalence
      	between keys.
      	* a-cfhama.adb, a-cfhama.ads (Formal_Model.P) Disable handling
      	of equivalence on functional maps.
      	* a-cfdlli.adb, a-cfdlli.ads (Formal_Model.P) Disable handling
      	of equivalence on functional maps.
      
      From-SVN: r247328
      Claire Dross committed
    • re PR middle-end/80533 (Alias analysis of zero length array does not recognize… · 12ead254
      re PR middle-end/80533 (Alias analysis of zero length array does not recognize accesses beyond end of array)
      
      2017-04-27  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/80533
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): When
      	stripping ARRAY_REFs from MEM_EXPR make sure we're not
      	keeping a reference to a trailing array.
      
      From-SVN: r247327
      Richard Biener committed
    • exp_ch9.adb (Expand_Entry_Barrier): Code cleanup. · 3b2249aa
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch9.adb (Expand_Entry_Barrier): Code
      	cleanup. Do not perform the optimization which removes the
      	declarations of the discriminant and component renamings when
      	validity checks on operands and attributes are in effect.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_spark.adb, exp_util.adb, sem_ch7.adb, g-dyntab.adb, g-dyntab.ads,
      	freeze.adb, a-cfinve.ads, a-cofuma.adb, a-cofuma.ads, a-cfhama.adb,
      	a-cfhama.ads, a-cofove.ads: Minor reformatting.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* g-debpoo.adb (Dump_Gnatmem): Protect against a possible null
      	pointer dereference.
      	* g-spipat.adb (Dump): Code clean up. Protect against a possible
      	null pointer dereference.
      
      From-SVN: r247326
      Hristian Kirtchev committed
    • g-dyntab.ads, [...]: Default for Table_Low_Bound. · a3ef4e65
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb: Default for Table_Low_Bound.
      	Rename Empty --> Empty_Table_Ptr, and don't duplicate code for it.
      	Free renames Init, since they do the same thing.
      	* g-table.ads: Default for Table_Low_Bound.
      	* table.ads: Default for Table_Low_Bound, Table_Initial, and
      	Table_Increment.
      
      From-SVN: r247324
      Bob Duff committed
    • [multiple changes] · de33eb38
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb: Add assertions to subprograms that
      	can reallocate.
      	* atree.adb, elists.adb, fname-uf.adb, ghost.adb, inline.adb,
      	* lib.adb, namet.adb, nlists.adb, sem.adb, sinput.adb, stringt.adb:
      	Reorder code so that above assertions do not fail.
      	* table.ads: Remove obsolete comment on Locked.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfdlli.ads: Code cleanup.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_Freeze_Type): Build a DIC procedure
      	when needed for proof.	(Expand_SPARK): Call the new procedure.
      	* exp_util.ads Fix typo.
      
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* a-cofuma.ads, a-cfhama.ads: Minor reformatting, grammar, and typo
      	fixes.
      
      From-SVN: r247323
      Arnaud Charlet committed
    • re PR middle-end/80539 (gcc ICE at -O2 and above on valid code on… · 1b7c8d39
      re PR middle-end/80539 (gcc ICE at -O2 and above on valid code on x86_64-linux-gnu in "chrec_fold_plus_poly_poly")
      
      2017-04-27  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/80539
      	* tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
      	being in loop-closed SSA form conservatively.
      	(chrec_fold_multiply_poly_poly): Likewise.
      
      	* gcc.dg/torture/pr80539.c: New testcase.
      
      From-SVN: r247322
      Richard Biener committed
    • [multiple changes] · a6d25cad
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb Add new type Visited_Element
      	and update the contents of table Elab_Visited.	Various code clean up.
      	(Check_Elab_Call): Determine whether a prior call to
      	the same subprogram was already examined within the same context.
      	(Check_Internal_Call_Continue): Register the subprogram being
      	called as examined within a particular context. Do not suppress
      	elaboration warnings.
      
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* xoscons.adb, osint.ads: Minor reformatting.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename
      	Table_Count_Type --> Table_Last_Type, because the name
      	was confusing (a "count" usually starts at zero).  Add
      	functionality supported or needed by other tables packages
      	(Move, Release_Threshold).
      	* g-table.ads, g-table.adb: This is now just a thin wrapper
      	around g-dyntab.ads/g-dyntab.adb.  Add functionality supported
      	or needed by other tables packages (Save, Restore).
      	* table.ads, table.adb: This is now just a thin wrapper around
      	* g-table.ads/g-table.adb.
      	* namet.h, scos.h, uintp.h: These files are reaching into the
      	private data of some instances of g-table, whose names changed,
      	so the above change requires some adjustment here. It now uses
      	public interfaces.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* namet.adb, namet.ads: Minor: remove unused procedures.
      
      2017-04-27  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too.
      	(Minimize_Eliminate_Overflows): Initialize Llo and Lhi.
      	Add pragma Warnings on Rtype variable in nested block.	*
      	* exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC.
      	* exp_ch4.adb (Expand_Concatenate): Initialize 3 variables.
      	(Size_In_Storage_Elements): Add pragma Warnings on Res variable.
      	* exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts.
      	(Process_Component_List_For_Finalize): Initialize Counter_Id.
      	(Build_Finalize_Statements): Initialize Bod_Stmts.
      	* exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfhama.adb, a-cfhamai.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions that are
      	used in subprogram contracts.
      	(Current_To_Last): Removed, model
      	functions should be used instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Strict_Equal): Removed, model functions should be used instead.
      	(No_Overlap): Removed, model functions should be used instead.
      	(Equivalent_Keys): Functions over cursors are removed. They were
      	awkward with explicit container parameters.
      	* a-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma
      	(proof only) procedure to help GNATprove when equivalence over
      	keys is not equality.
      
      From-SVN: r247320
      Arnaud Charlet committed
    • exp_util.adb, [...]: Minor reformatting and code cleanups. · 27eaddda
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb, a-cfdlli.adb, a-cfdlli.ads, exp_ch9.adb, g-dyntab.adb,
      	sem_dim.adb, a-cfinve.adb, a-cfinve.ads, a-cofove.adb, a-cofove.ads:
      	Minor reformatting and code cleanups.
      
      From-SVN: r247319
      Hristian Kirtchev committed
    • [multiple changes] · 6dd86c75
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Build_Inherited_Condition_Pragmas): New procedure,
      	subsidiary of Check_Inherited_Conditions, to build pragmas for an
      	operation whose ancestor has classwide pre/postconditions. This
      	is used both to check the legality of the inheritance in Ada
      	and in SPARK, and to determine whether a wrapper is needed for
      	an inherited operation.
      	* exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
      	Improve placement of error message for inherited classwide
      	conditions that become illegal on type derivation.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Set
      	SPARK_Mode from context on generic package.
      	* sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove
      	useless test.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid
      	overflows in computations.
      	* a-cofove.ads (Capacity_Range): Rewrite last bound to avoid
      	overflows in computations.
      	(Insert): Rewrite precondition to avoid overflows in computations.
      	* a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid
      	overflows in computations.
      	(Insert): Rewrite precondition to avoid overflows in computations.
      
      From-SVN: r247318
      Arnaud Charlet committed
    • [multiple changes] · f2474523
      2017-04-27  Steve Baird  <baird@adacore.com>
      
      	* exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel
      	flag when it is declared in order to avoid confusing CodePeer about
      	the possibility of an uninitialized variable read.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_Object_Declaration): There is
      	no dimensionality error if the subtype of the expression is
      	identical to the nominal subtype in the declaration, even though
      	the expression itself may have been constant-folded and lack a
      	dimension vector.
      	* sem_dim.ads: Add comments on setting of dimension vectors and
      	its interaction with node rewritings and side-effect removal.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* debug.adb: Minor comment correction.
      	* sem_dim.ads: Minor reformatting and typo fixes.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-table.adb, g-table.adsa, scos.h: From the C side, access First and
      	Last of the tables via function calls, rather than relying on layout
      	of data structures.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb: No wrapper in GNATprove mode.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* sem_res.adb (Resolve_Comparison_Op): Always
      	evaluate comparisons between values of universal types.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (Check_Internal_Call_Continue): Do not generate
      	an elaboration counter nor a check when in GNATprove mode.
      	* sem_util.adb (Build_Elaboration_Entity): Do not create an
      	elaboration counter when in GNATprove mode.
      
      From-SVN: r247317
      Arnaud Charlet committed
    • [multiple changes] · 78f2b7ce
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb: copy-paste typo.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* sem_prag.adb (Analyze_Pre_Post_In_Decl_Part):
      	Use correct test to detect call in GNATprove mode instead of
      	compilation.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union):
      	New property function expressing that the element of a
      	sequence are contained in the union of two sequences.
      	(Formal_Model.M_Elements_Included): New property function
      	expressing that the element of a sequence are another sequence.
      	(Generic_Sorting): Use new property functions to state that
      	elements are preserved by Sort and Merge.
      	* a-cofove.adb, a-cofove.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions
      	that are used in subprogram contracts.	(Capacity):
      	On unbounded containers, return the maximal capacity.
      	(Current_To_Last): Removed, model functions should be used instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Append): Default parameter value replaced
      	by new wrapper to allow more precise contracts.
      	(Insert): Subprogram restored, it seems it was useful to users even if
      	it is inefficient.
      	(Delete): Subprogram restored, it seems it was useful to users even if
      	it is inefficient.
      	(Prepend): Subprogram restored, it seems it was useful to users even
      	if it is inefficient.
      	(Delete_First): Subprogram restored, it seems it
      	was useful to users even if it is inefficient.	(Delete_Last):
      	Default parameter value replaced by new wrapper to allow more
      	precise contracts.
      	(Generic_Sorting.Merge): Subprogram restored.
      	* a-cfinve.adb, a-cfinve.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions
      	that are used in subprogram contracts.	(Capacity):
      	On unbounded containers, return the maximal capacity.
      	(Current_To_Last): Removed, model functions should be used
      	instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Append): Default parameter value replaced
      	by new wrapper to allow more precise contracts.
      	(Insert): Subprogram restored, it seems it was useful to users even if
      	it is inefficient.
      	(Delete): Subprogram restored, it seems it was useful to users even if
      	it is inefficient.
      	(Prepend): Subprogram restored, it seems it was useful to users even
      	if it is inefficient.
      	(Delete_First): Subprogram restored, it seems it
      	was useful to users even if it is inefficient.	(Delete_Last):
      	Default parameter value replaced by new wrapper to allow more
      	precise contracts.
      	(Generic_Sorting.Merge): Subprogram restored.
      	(Vector): Do not reuse formal vectors, as it is no longer possible
      	to supply them with an equality function over elements.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.adb (Release): When allocating the new
      	table, use the correct slice of the old table to initialize it.
      
      From-SVN: r247316
      Arnaud Charlet committed
    • einfo.ads: Minor fixes in comments. · 02848684
      
      
      	* einfo.ads: Minor fixes in comments.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb: disable clones in SPARK_Mode.
      
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_util.ads, contracts.adb: Minor reformatting.
      
      From-SVN: r247315
      Arnaud Charlet committed
    • Minor reformatting. · 62c7d441
      From-SVN: r247314
      Arnaud Charlet committed
    • sem_util.adb, [...] (Build_Class_Wide_Clone_Body): Build body of subprogram that… · aaa0a838
      sem_util.adb, [...] (Build_Class_Wide_Clone_Body): Build body of subprogram that has a class-wide condition that contains calls to...
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body):
      	Build body of subprogram that has a class-wide condition that
      	contains calls to other primitives.
      	(Build_Class_Wide_Clone_Call); Build a call to the common
      	class-wide clone of a subprogram with classwide conditions. The
      	body of the subprogram becomes a wrapper for a call to the
      	clone. The inherited operation becomes a similar wrapper to which
      	modified conditions apply, and the call to the clone includes
      	the proper conversion in a call the parent operation.
      	(Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a
      	subprogram that has a classwide condition that contains calls to
      	other primitives, build an internal subprogram that is invoked
      	through a type-specific wrapper for all inherited subprograms
      	that may have a modified condition.
      	* sem_prag.adb (Check_References): If subprogram has a classwide
      	condition, create entity for corresponding clone, to be invoked
      	through wrapper subprograns.
      	(Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error
      	message about placement if pragma isi internally generated.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has
      	a classwide clone, build body of clone as copy of original body,
      	and rewrite original body as a wrapper as a wrapper for a call to
      	the clone, so that it incorporates the original pre/postconditions
      	of the subprogram.
      	* freeze.adb (Check_Inherited_Conditions): For an inherited
      	subprogram that inherits a classwide condition, build spec and
      	body of corresponding wrapper so that call to inherited operation
      	gets the modified conditions.
      	* contracts.adb (Analyze_Contracts): If analysis of classwide
      	condition has created a clone for a primitive operation, analyze
      	declaration of clone.
      
      From-SVN: r247313
      Ed Schonberg committed
    • [multiple changes] · c1025b4e
      2017-04-27  Steve Baird  <baird@adacore.com>
      
      	* exp_util.adb (Build_Allocate_Deallocate_Proc):
      	Add "Suppress => All_Checks" to avoid generating unnecessary
      	checks.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* debug.adb: Reserve debug flag 'm' for no inlining in GNATprove.
      	* sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of
      	inlining body in GNATprove mode when switch -gnatdm used.
      	* sem_res.adb (Resolve_Call): Skip detection of lack of inlining
      	in GNATprove mode when switch -gnatdm used.
      
      2017-04-27  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause
      	[Attribute_Address]): Call Set_Address_Taken when ignoring rep
      	clauses, so that we keep an indication of the address clause
      	before removing it from the tree.
      
      From-SVN: r247312
      Arnaud Charlet committed
    • exp_util.ads, [...] (Evaluate_Name): Force evaluation of expression being qualified... · cd5acda5
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation
      	of expression being qualified, when not an object name, or else
      	evaluate the underlying name.
      
      From-SVN: r247311
      Yannick Moy committed
    • [multiple changes] · 7e6060af
      2017-04-27  Jerome Lambourg  <lambourg@adacore.com>
      
      	* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch.
      
      2017-04-27  Justin Squirek  <squirek@adacore.com>
      
      	* exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to
      	Process_Component_List_For_Finalization as a local variable.
      	(Process_Component_For_Finalize): Add an extra parameter to avoid
      	global references.
      	(Process_Component_List_For_Finalization): Correct calls to
      	Process_Component_For_Finalize to take Num_Comps as a parameter.
      
      From-SVN: r247310
      Arnaud Charlet committed
    • [multiple changes] · 522aa6ee
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch8.adb (Find_Direct_Name): Account for the case where
      	a use-visible entity is defined within a nested scope of an
      	instance when giving priority to entities which were visible in
      	the original generic.
      	* sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine.
      
      2017-04-27  Tristan Gingold  <gingold@adacore.com>
      
      	* raise-gcc.c: Don't use unwind.h while compiling
      	for the frontend, but mimic host behavior.
      
      2017-04-27  Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch3.adb (Build_Discriminated_Subtype):
      	Propagate Has_Pragma_Unreferenced_Objects to the built subtype.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Global_Item):
      	Do not consider discriminants because they are not "entire
      	objects". Remove the discriminant-related checks because they are
      	obsolete.
      	(Analyze_Input_Output): Do not consider discriminants
      	because they are not "entire objects".
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not
      	perform check if the current scope does not come from source,
      	as is the case for a rewritten task body, because check has
      	been performed already, and may not be doable because of changed
      	visibility.
      
      From-SVN: r247309
      Arnaud Charlet committed
    • re PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's) · f138ea5c
      2017-04-26  Tamar Christina  <tamar.christina@arm.com>
      
      	PR middle-end/79665
      	* expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
      	CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
      
      From-SVN: r247307
      Tamar Christina committed
    • [multiple changes] · b63d61f7
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* a-cofuse.adb, a-cfdlli.adb, a-cofuse.ads, a-cfdlli.ads, a-cofuve.adb,
      	a-cofuve.ads, a-cofuma.adb, a-cofuma.ads, sem_eval.adb, a-cofuba.adb:
      	Minor reformatting.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Analyze_Call): If the return type of a function
      	is incomplete in an context in which the full view is available,
      	replace the type of the call by the full view, to prevent spurious
      	type errors.
      	* exp_disp.adb (Check_Premature_Freezing): Disable check on an
      	abstract subprogram so that compiler does not reject a parameter
      	of a primitive operation of a tagged type being frozen, when
      	the untagged type of that parameter cannot be frozen.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* sem_attr.adb (Compute_Type_Key): Don't walk
      	representation items for irrelevant types, which could be in a
      	different source file.
      
      2017-04-27  Steve Baird  <baird@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference):
      	Don't expand Image, Wide_Image, Wide_Wide_Image attributes
      	for CodePeer.
      
      From-SVN: r247305
      Arnaud Charlet committed
    • [multiple changes] · bb9e2aa2
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* exp_unst.ads: Fix typos in comments.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_eval.adb (Choice_Matches): Handle properly a real literal
      	whose type has a defined static predicate.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Insert_Dereference_Action):
      	Do not adjust the address of a controlled object when the
      	associated access type is subject to pragma No_Heap_Finalization.
      	Code reformatting.
      
      From-SVN: r247304
      Arnaud Charlet committed
    • utils.c (gnat_type_for_size): Set TYPE_ARTIFICIAL on created types. · ed8cbbaf
      2017-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
      
      	* gcc-interface/utils.c (gnat_type_for_size): Set
      	TYPE_ARTIFICIAL on created types.
      
      From-SVN: r247303
      Pierre-Marie de Rodat committed
    • [multiple changes] · 6cbfce7e
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
      	modifications in functional containers.
      	* a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat
      	to improve readablity. Subprograms are separated between basic
      	operations, constructors and properties. Universally quantified
      	formulas in contracts are factorized in independant functions
      	with a name and a comment.  Names of parameters are improved.
      
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Resolve_Type_Conversion): Do not
      	install a predicate check here since this is already done during
      	the expansion phase. Verify whether the operand satisfies the
      	static predicate (if any) of the target type.
      	* sem_ch3.adb (Analyze_Object_Declaration): Do
      	not install a predicate check if the object is initialized by
      	means of a type conversion because the conversion is subjected
      	to the same check.
      
      2017-04-27  Tristan Gingold  <gingold@adacore.com>
      
      	* raise.c (__gnat_builtin_longjmp): Remove.
      	(__gnat_bracktrace):
      	Add a dummy definition for the compiler (__gnat_eh_personality,
      	__gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19,
      	__gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30,
      	__gnat_rcheck_31, __gnat_rcheck_32): Likewise.
      	* a-exexpr.adb: Renamed from a-exexpr-gcc.adb
      	* a-except.ads, a-except.adb: Renamed from a-except-2005.ads
      	and a-except-2005.adb.
      	* raise-gcc.c: Allow build in compiler, compiled as a C++
      	file.
      	(__gnat_Unwind_ForcedUnwind): Adjust prototype.
      	(db): Constify msg_format.
      	(get_call_site_action_for): Don't use void arithmetic.
      	* system.ads (Frontend_Exceptions): Set to False.
      	(ZCX_By_Default): Set to True.
      	(GCC_ZC_Support): Set to True.
      	* gcc-interface/Makefile.in: No more variants for a-exexpr.adb and
      	a-except.ad[sb].
      	* gcc-interface/Make-lang.in: Add support for backend zcx exceptions
      	in gnat1 and gnatbind.
      	* gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o,
      	s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o
      	* s-excmac.ads, s-excmac.adb: Copy of variants.
      	* a-except.o: Adjust preequisites.
      	Add handling of s-excmac-arm.adb and s-excmac-gcc.adb.
      
      From-SVN: r247301
      Arnaud Charlet committed
    • PR demangler/80513 check for overflows and invalid characters in thunks · de3b531c
      	PR demangler/80513
      	* cp-demangle.c (d_number): Check for overflow.
      	* cplus-dem.c (consume_count): Fix overflow check.
      	(gnu_special): Check for underscore after thunk delta.
      	* testsuite/demangle-expected: Add tests for overflows and invalid
      	characters in thunks.
      
      From-SVN: r247300
      Jonathan Wakely committed
    • [multiple changes] · e77e2429
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb,
      	cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb,
      	a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting.
      
      2017-04-27  Tristan Gingold  <gingold@adacore.com>
      
      	* s-excmac-gcc.ads, s-excmac-gcc.adb,
      	s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in
      	Ada95.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Establish_Transient_Scope): Rewrite
      	the loop which detects potential enclosing transient scopes. The
      	loop now terminates much earlier as transient scopes are bounded
      	by packages and subprograms.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Cursor): Type is now public so that it can be used in
      	model functions.
      	(Formal_Model): Ghost package containing
      	model functions that are used in subprogram contracts.
      	(Current_To_Last): Removed, model functions should be used
      	instead.
      	(First_To_Previous): Removed, model functions should
      	be used instead.
      	(Strict_Equal): Removed, model functions
      	should be used instead.
      	(Append): Default parameter value
      	replaced by new wrapper to allow more precise contracts.
      	(Insert): Default parameter value replaced by new wrapper to
      	allow more precise contracts.
      	(Delete): Default parameter
      	value replaced by new wrapper to allow more precise contracts.
      	(Prepend): Default parameter value replaced by new wrapper to
      	allow more precise contracts.
      	(Delete_First): Default parameter
      	value replaced by new wrapper to allow more precise contracts.
      	(Delete_Last): Default parameter value replaced by new wrapper
      	to allow more precise contracts.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK): Perform specialized expansion
      	for object declarations.
      	(Expand_SPARK_N_Object_Declaration): New routine.
      	* sem_elab.adb (Check_A_Call): Include calls to the
      	Default_Initial_Condition procedure of a type under the SPARK
      	elaboration checks umbrella.
      
      From-SVN: r247299
      Arnaud Charlet committed
    • [multiple changes] · 7a71a7c4
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem.adb (Analyze): Diagnose an illegal iterated component
      	association.
      	* sem_util.ads, sem_util.adb
      	(Diagnose_Iterated_Component_Association): New routine.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* adaint.c (__gnat_get_current_dir): Return 0 in length if
      	getcwd fails.
      	* a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise
      	exception if getcwd failed.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost
      	entities with special prefix.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb Change the documentation of switch -gnatd.s.
      	* exp_ch7.adb (Make_Transient_Block): Transient blocks do not need
      	to manage the secondary stack when an enclosing scope already
      	performs this functionality (aka relaxed management). Switch
      	-gnatd.s may be used to force strict management in which case
      	the block will manage the secondary stack unconditionally. Add
      	a guard to stop the traversal when encountering a package or a
      	subprogram scope.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Call): Refine further the handling of
      	limited views of return types in function calls. If the function
      	that returns a limited view appears in the current unit,
      	we do not replace its type by the non-limited view because
      	this transformation is performed int the back-end. However,
      	the type of the call itself must be the non-limited view, to
      	prevent spurious resolution errors.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds):
      	Removed, proposed implementation using generics for class-wide
      	preconditions proved impractical.
      	(Class_Wide_Clone): New attribute of subprogram. Designates
      	subprogram created for primitive operations with class-wide
      	pre/postconditions that contain calls to other primitives. The
      	clone holds the body of the original primitive, but the
      	pre/postonditions do not apply to it. The original body is
      	rewritten as a wrapper for a call to the clone.
      	(Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If
      	the flag is set, no code for the corresponding pre/postconditions
      	is inserted into its body.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore
      	Scalar_Storage_Order if -gnatI is given.
      	* sem_prag.adb (Analyze_Pragma): Ignore
      	Default_Scalar_Storage_Order if -gnatI is given.
      
      From-SVN: r247298
      Arnaud Charlet committed
    • a-cofuba.ads (Add): Take as an additional input parameter the position where the… · 394fa9f5
      a-cofuba.ads (Add): Take as an additional input parameter the position where the element should be...
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cofuba.ads (Add): Take as an additional input parameter
      	the position where the element should be inserted.
      	(Remove): New function that removes an element from the container.
      	* a-cofuma.ads (Add): Adapt to the new API of Base.Add.
      	* a-cofuse.ads (Add): Adapt to the new API of Base.Add.
      	(Remove): New function that removes an element from a set.
      	* a-cofuve.ads (Add): Adapt to the new API of Base.Add.
      	(Remove): New function that removes an element from a sequence.
      	(Insert): New function that adds anywhere in a sequence.
      
      From-SVN: r247297
      Claire Dross committed
    • [multiple changes] · 11775988
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Generate_Range_Check): Revert previous change.
      
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_util.adb: Minor reformatting/rewording.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* lib-xref.adb (Generate_Reference): The use
      	of attribute 'Result is not considered a violation of pragma
      	Unreferenced.
      
      2017-04-27  Justin Squirek  <squirek@adacore.com>
      
      	* cstand.adb (Create_Standard): Correctly set
      	Directly_Designated_Type for Any_Access.
      	* sem_type.adb (Covers): Minor grammar fixes.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* sem_attr.adb: Minor cleanup.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New
      	private child of Ada.Containers used to implement all functional
      	containers.
      	* a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New
      	child of Ada.Containers. It provides functional indefinite unbounded
      	maps which can be used as high level models for specification
      	of data structures.
      	* a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New
      	child of Ada.Containers. It provides functional indefinite unbounded
      	sets which can be used as high level models for specification
      	of data structures.
      	* a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New
      	child of Ada.Containers.  It provides functional indefinite unbounded
      	vectors which can be used as high level models for specification
      	of data structures.
      	* Makefile.rtl: Add new packages.
      	* impunit.adb: Add new packages.
      
      From-SVN: r247296
      Arnaud Charlet committed
    • [multiple changes] · f32eb591
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch4.adb: Minor reformatting.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Analyze_Associations): minor reformatting.
      	(Check_Fixed_Point_Actual): Do not emit a warning on a fixed
      	point type actual that has user-defined arithmetic primitives,
      	when there is a previous actual for a formal package that defines
      	a fixed-point type with the parent user-defined operator.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Generate_Range_Check): Reinstate part of previous change.
      	* sem_attr.adb (Resolve_Attribute): Generate a range check when
      	the component type allows range checks.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aux.adb (Is_Generic_Formal): Use original node to locate
      	corresponding declaration, because formal derived types are
      	rewritten as private extensions.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check
      	dimensions of operands if node has been analyzed already, because
      	previous analysis and dimension checking will have removed the
      	dimension information from the operands.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb: Document the use of switch -gnatd.s.
      	* einfo.ads Update the documentation on attribute
      	Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove
      	the uses of these attributes from certain entities.
      	* exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry
      	which determines whether the block should continue to manage
      	the secondary stack.
      	(Manages_Sec_Stack): New routine.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* atree.ads: Minor edit.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sinfo.ads: Update the section on Ghost mode. Add
      	a section on SPARK mode. Update the placement of section on
      	expression functions.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* sinput.adb (Get_Source_File_Index): Don't
      	assert that S is in the right range in the case where this is
      	a .dg file under construction.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb (Check_Result_And_Post_State):
      	Handle more precisely each conjunct in expressions formed by
      	and'ing sub-expressions.
      
      From-SVN: r247295
      Arnaud Charlet committed
    • exp_ch4.adb, [...]: Minor typo fix and reformatting. · 0c3ef0cc
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch4.adb, sem_ch4.adb: Minor typo fix and reformatting.
      
      From-SVN: r247294
      Gary Dismukes committed
    • re PR target/77728 (Miscompilation multiple vector iteration on ARM) · 985b8393
      	PR target/77728
      	* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
      	(aarch64_function_arg_alignment): Return unsigned int again, but still
      	ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
      	(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
      	Don't emit -Wpsabi note.
      	(aarch64_function_arg_boundary): Likewise.
      	(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
      	caller.
      testsuite/
      	* g++.dg/abi/pr77728-2.C: Don't expect -Wpsabi notes.
      
      From-SVN: r247292
      Jakub Jelinek committed