1. 27 Apr, 2017 36 commits
    • [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
    • Daily bump. · db125f9e
      From-SVN: r247291
      GCC Administrator committed
  2. 26 Apr, 2017 4 commits