1. 13 Jan, 2017 31 commits
    • sem_ch6.adb (Analyze_Subprogram_Body_Helper): Ensure that the input body is a… · 36be0082
      sem_ch6.adb (Analyze_Subprogram_Body_Helper): Ensure that the input body is a subprogram body before trying to determine...
      
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
      	Ensure that the input body is a subprogram body before trying to
      	determine whether it denoted an expression function.  Note that
      	subprogram body stubs cannot denote expression functions.
      
      From-SVN: r244421
      Hristian Kirtchev committed
    • bindgen.adb, [...]: Minor reformatting and typo fixes. · 804ec349
      2017-01-13  Gary Dismukes  <dismukes@adacore.com>
      
      	* bindgen.adb, sem_ch6.adb, binde.adb, exp_ch3.adb: Minor reformatting
      	and typo fixes.
      
      From-SVN: r244420
      Gary Dismukes committed
    • [multiple changes] · 354ae449
      2017-01-13  Javier Miranda  <miranda@adacore.com>
      
      	* einfo.ads (Component_Bit_Offset): Fix documentation.
      	* sem_ch13.adb (Check_Record_Representation_Clause): Skip check
      	on record holes for components with unknown compile-time offsets.
      
      2017-01-13  Bob Duff  <duff@adacore.com>
      
      	* ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag.
      	* g-locfil.ads: Minor comment fix.
      
      2017-01-13  Bob Duff  <duff@adacore.com>
      
      	* binde.adb (Elab_New): New elaboration order algorithm
      	that is expected to cause fewer ABE issues. This is a work in
      	progress. The new algorithm is currently disabled, and can be
      	enable by the -dp switch, or by modifying the Do_Old and Do_New
      	etc. flags and rebuilding. Experimental code is included to
      	compare the results of the old and new algorithms.
      	* binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we
      	can have multiple of these tables, so the old and new algorithms
      	can coexist.
      	* bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in'
      	parameter of type array. This avoids the global variable, and
      	allows bounds checking (which is normally defeated by the tables
      	packages). It also ensures that the Elab_Order is read-only
      	to Bindgen.
      	* bindgen.adb: Pass Elab_Order as an 'in' parameter to all
      	subprograms that need it, as above.
      	* debug.adb: Document new -dp switch. Modify doc of old -do
      	switch.
      	* gnatbind.adb (Gnatbind): Make use of new interfaces to Binde
      	and Bindgen.  Move writing of closure (-R and -Ra switches)
      	to Binde; that's more convenient.
      
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): If the expression
      	function is a completion, all entities referenced in the
      	expression are frozen. As a consequence, a reference to an
      	uncompleted private type from an enclosing scope is illegal.
      
      From-SVN: r244419
      Arnaud Charlet committed
    • [multiple changes] · 448a1eb3
      2017-01-13  Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch6.adb (Freeze_Expr_Types): New subprogram.
      	(Analyze_Subprogram_Body_Helper): At the occurrence of an
      	expression function declaration that is a completion, its
      	expression causes freezing (AI12-0103).
      
      2017-01-13  Vadim Godunko  <godunko@adacore.com>
      
      	* a-coinho-shared.adb: Fix memory leaks in Constant_Reference and
      	Reference functions of Ada.Containers.Indefinite_Holders.
      
      2017-01-13  Bob Duff  <duff@adacore.com>
      
      	* s-os_lib.ads: Minor comment fixes.
      
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch3.adb (Default_Initialize_Object): Do not default
      	initialize an object when it is of a task type and restriction
      	No_Tasking is in effect because the initialization is obsolete.
      	* exp_ch9.adb (Build_Master_Entity): Do not generate a master when
      	restriction No_Tasking is in effect.
      	(Build_Master_Renaming): Do not rename a master when restriction
      	No_Tasking is in effect.
      
      From-SVN: r244418
      Arnaud Charlet committed
    • [multiple changes] · b2c1aa8f
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aggr.adb (Resolve_Array_Aggregate): The code that verifies
      	the legality of An others clause applies as well to a choice in
      	an Iterated_component_ association.
      	(Resolve_Iterated_Component_Association): An others choice
      	is legal.
      	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): An
      	Iterated_Component_Association is not static.
      
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch3.adb (Freeze_Type): Mark the Ghost mode as set in case
      	control is passed to the expresion handler before the new mode
      	is set.
      	* sem_ch12.adb (Analyze_Package_Instantiation,
      	Analyze_Subprogram_Instantiation): Mark the Ghost mode as set
      	in case control is passed to the expresion handler before the
      	new mode is set.
      
      From-SVN: r244417
      Arnaud Charlet committed
    • sem_aggr.adb, [...]: Minor reformatting. · 72cdccfa
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_aggr.adb, sem_ch3.adb, inline.adb, sem_util.adb, exp_ch4.adb,
      	exp_aggr.adb: Minor reformatting.
      
      From-SVN: r244416
      Hristian Kirtchev committed
    • inline.adb: Minor reformatting and typo fix. · fae8eb5b
      2017-01-13  Gary Dismukes  <dismukes@adacore.com>
      
      	* inline.adb: Minor reformatting and typo fix.
      
      From-SVN: r244415
      Gary Dismukes committed
    • [multiple changes] · 00f45f30
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Choice_List): Move function here
      	from sem_aggr.adb, for use elsewhere.
      	* sem_ch3.adb (Analyze_Object_Declaration): Use Choice_List.
      	* sem_aggr.adb (Resolve_Array_Aggregate): Remove
      	Iterated_Component_Present.
      	* exp_aggr.adb: Use Choice_List throughout, to handle
      	Iterated_Component_Associations.
      	(Gen_Loop): Generate proper loop for an
      	Iterated_Component_Association: loop variable has the identifier
      	of the original association. Generate a loop even for a single
      	component choice, in order to make loop parameter visible in
      	expression.
      	(Flatten): An Iterated_Component_Association is not static.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Op_Expon): Ensure that the value of
      	float exponentiation for statically known small negative values
      	is the reciprocal of the exponentiation for the opposite value
      	of the exponent.
      	* s-exnllf.adb (Exn_Float, Exn_Long_Float, Exn_Long_Long_Float):
      	Ensure that the value of float exponentiation for negative values
      	is the reciprocal of the exponentiation for the opposite value
      	of the exponent.
      	* inline.adb (Expand_Inlined_Call): Fix the count
      	for the number of generated gotos.
      
      From-SVN: r244414
      Arnaud Charlet committed
    • re PR fortran/70697 ([Coarray] ICE on EVENT WAIT with array element UNTIL_COUNT argument) · eaed3226
      gcc/testsuite/ChangeLog:
      
      2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/70697
      	* gfortran.dg/coarray/event_4.f08: New test.
      
      
      gcc/fortran/ChangeLog:
      
      2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/70697
      	* resolve.c (resolve_lock_unlock_event): Resolve the expression for
      	event's until_count.
      
      From-SVN: r244413
      Andre Vehreschild committed
    • Code cleanups. · 3603fa5c
      From-SVN: r244412
      Arnaud Charlet committed
    • [multiple changes] · 3abbc5c2
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* inline.adb: Code cleanup.
      	* sem_util.adb (Is_OK_Volatile_Context): Add
      	expression in delay statement as OK for volatile context.
      
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aggr.adb (Resolve_Array_Aggregate): In normal compilation
      	mode a choice that is a subtype with a static predicate is
      	replaced by the values it covers. This transformation must not
      	be performed in ASIS mode, to preserve the source for analysis.
      
      2017-01-13  Justin Squirek  <squirek@adacore.com>
      
      	* nlists.ads: Correct minor typo.
      
      From-SVN: r244411
      Arnaud Charlet committed
    • [multiple changes] · ef74daea
      2017-01-13  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch13.adb: Minor reformatting and typo fix.
      
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* par-ch4.adb (P_Aggregate_Or_Parent_Expr): An
      	Iterated_Component_Association is a named association in an
      	array aggregate.
      	* sem_aggr.adb (Resolve_Iterated_Component_Association): New
      	procedure, subsidiary of Resolve_Array_Aggregate, to analyze
      	and resolve the discrete choices and the expression of the
      	new construct.
      	* sinfo.adb, sinfo.ads: In analogy with N_Component_Association,
      	Loop_Actions and Box_Present are attributes of
      	N_Iterated_Component_Association nodes. Box_Present is always
      	False in this case.
      	* sprint.adb (Sprint_Node): An Iterated_Component_Association
      	has a Discrete_Choices list, as specified in the RM. A
      	Component_Association for aggregate uses instead a Choices list.
      	We have to live with this small inconsistency because the new
      	construct also has a defining identifier, and there is no way
      	to merge the two node structures.
      
      From-SVN: r244410
      Arnaud Charlet committed
    • [multiple changes] · da9683f4
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* inline.adb (Remove_Aspects_And_Pragmas): Add Unused to the
      	list of pragmas to remove.  Remove pragmas from the list of
      	statements in the body to inline.
      	* namet.adb, namet.ads (Nam_In): New version with 12 parameters.
      
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Resolve_Aspects): New procedure, subsidiary of
      	Analyze_Declarations, to analyze and resolve the expressions of
      	aspect specifications in the current declarative list, so that
      	the expressions have proper entity and type info.  This is needed
      	for ASIS when there is no subsequent expansion to generate this
      	semantic information.
      	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Use Etype of
      	original expression, to suppress cascaded errors when expression
      	has been constant-folded.
      	(Resolve_Aspect_Expressions, Resolve_Name): Preserve entities in
      	ASIS mode, because there is no subsequent expansion to decorate
      	the tree.
      
      From-SVN: r244409
      Arnaud Charlet committed
    • inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode): New function to… · 3de3a1be
      inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode): New function to detect when a call may be inlined or not in GNATprove mode.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode):
      	New function to detect when a call may be inlined or not in
      	GNATprove mode.
      	(Expand_Inlined_Call): Ensure that a temporary
      	is always created in the cases where a type conversion may be
      	needed on an input parameter in GNATprove mode, so that GNATprove
      	sees the check to perform.
      	* sem_res.adb (Resolve_Call): In GNATprove mode, skip inlining
      	when not applicable due to actual requiring type conversion
      	with possible check but no temporary value can be copied for
      	GNATprove to see the check.
      
      From-SVN: r244408
      Yannick Moy committed
    • re PR fortran/70696 ([Coarray] ICE on EVENT POST of host-associated EVENT_TYPE coarray) · 4ccff88b
      gcc/testsuite/ChangeLog:
      
      2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/70696
      	* gfortran.dg/coarray/event_3.f08: New test.
      
      gcc/fortran/ChangeLog:
      
      2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/70696
      	* trans-expr.c (gfc_get_tree_for_caf_expr): Ensure the backend_decl
      	is valid before accessing it.
      
      libgfortran/ChangeLog:
      
      2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/70696
      	* caf/single.c (_gfortran_caf_register): Allocate enough memory for
      	the event counter.
      
      From-SVN: r244407
      Andre Vehreschild committed
    • sem_aggr.adb, [...]: Update all eligible case statements to reflect the new… · d8f43ee6
      sem_aggr.adb, [...]: Update all eligible case statements to reflect the new style for case alternatives.
      
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_aggr.adb, par_sco.adb, s-osprim-mingw.adb, exp_ch5.adb,
      	exp_prag.adb, sem_ch3.adb, xr_tabls.adb, lib-xref-spark_specific.adb,
      	layout.adb, sem_dist.adb, exp_spark.adb, exp_ch7.adb, gnatcmd.adb,
      	exp_util.adb, prj-proc.adb, sem_aux.adb, comperr.adb, g-memdum.adb,
      	exp_attr.adb, s-intman-solaris.adb, exp_ch9.adb, make.adb, live.adb,
      	g-sercom-linux.adb, sem_dim.adb, mlib-prj.adb, s-intman-posix.adb,
      	sem_ch9.adb, sem_ch10.adb, prep.adb, einfo.adb, scng.adb, checks.adb,
      	prj-strt.adb, sem_prag.adb, eval_fat.adb, sem_ch12.adb, sem.adb,
      	a-numaux-x86.adb, a-stwifi.adb, i-cobol.adb, prj.adb,
      	get_spark_xrefs.adb, s-tasini.adb, rtsfind.adb, freeze.adb,
      	g-arrspl.adb, par-ch4.adb, sem_util.adb, sem_res.adb, expander.adb,
      	sem_attr.adb, exp_dbug.adb, prj-pp.adb, a-stzfix.adb, s-interr.adb,
      	s-wchcnv.adb, switch-m.adb, gnat1drv.adb, sinput-l.adb, stylesw.adb,
      	contracts.adb, s-intman-android.adb, g-expect.adb, exp_ch4.adb,
      	g-comlin.adb, errout.adb, sinput.adb, s-exctra.adb, repinfo.adb,
      	g-spipat.adb, g-debpoo.adb, exp_ch6.adb, sem_ch4.adb, exp_ch13.adb,
      	a-wtedit.adb, validsw.adb, pprint.adb, widechar.adb, makeutl.adb,
      	ali.adb, set_targ.adb, sem_mech.adb, sem_ch6.adb, gnatdll.adb,
      	get_scos.adb, g-pehage.adb, s-tratas-default.adb, gnatbind.adb,
      	prj-dect.adb, g-socthi-mingw.adb, par-prag.adb, prj-nmsc.adb,
      	exp_disp.adb, par-ch12.adb, binde.adb, sem_ch8.adb,
      	s-tfsetr-default.adb, s-regexp.adb, gprep.adb, s-tpobop.adb,
      	a-teioed.adb, sem_warn.adb, sem_eval.adb, g-awk.adb, s-io.adb,
      	a-ztedit.adb, xoscons.adb, exp_intr.adb, sem_cat.adb, sprint.adb,
      	g-socket.adb, exp_dist.adb, sem_ch13.adb, s-tfsetr-vxworks.adb,
      	par-ch3.adb, treepr.adb, g-forstr.adb, g-catiio.adb, par-ch5.adb,
      	uname.adb, osint.adb, exp_ch3.adb, prj-env.adb, a-strfix.adb,
      	a-stzsup.adb, prj-tree.adb, s-fileio.adb: Update all eligible case
      	statements to reflect the new style for case alternatives. Various
      	code clean up and reformatting.
      
      From-SVN: r244406
      Hristian Kirtchev committed
    • [multiple changes] · d4bf622f
      2017-01-13  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_util.adb: Minor reformatting.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb: Code cleanup.
      	* sem_ch9.adb (Analyze_Delay_Until): Resolve
      	expression so that calls are identified as such inside delay
      	until.
      
      From-SVN: r244405
      Arnaud Charlet committed
    • Minor reformatting. · 53a5377a
      From-SVN: r244404
      Arnaud Charlet committed
    • exp_util.adb (Insert_Actions): Handle Iterated_Component_Association. · a702c9b9
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb (Insert_Actions): Handle Iterated_Component_Association.
      	* par-ch3.adb (P_Discrete_Choice_List): An
      	Iterated_Component_Association is an array aggregate component.
      	* par-ch4.adb (P_Iterated_Component_Association): New procedure.
      	(Is_Quantified_Expression): New function that performs a lookahead
      	to distinguish quantified expressions from iterated component
      	associations.
      	(P_Aggregate_Or_Paren_Expr): Recognize iterated component
      	associations.
      	(P_Unparen_Cond_Case_Quant_Expression, P_Primary): Ditto.
      	* sem.adb (Analyze): Handle Iterated_Component_Association.
      	* sem_aggr.adb (Resolve_Array_Aggregate): Dummy handling of iterated
      	component associations.
      	* sinfo.ads, sinfo.adb: Entries for for
      	N_Iterated_Component_Association and its fields.
      	* sprint.adb (Sprint_Node_Actual): Handle
      	N_Iterated_Component_Association.
      
      From-SVN: r244403
      Ed Schonberg committed
    • re PR sanitizer/78887 (Failure to build aarch64 allmodconfig Linux kernel 4.9) · 0acd830b
      	PR sanitizer/78887
      	* asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
      	if -fsanitize=kernel-address is present.
      
      From-SVN: r244402
      Maxim Ostapenko committed
    • [multiple changes] · 582dbb53
      2017-01-13  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch12.adb (Analyze_Package_Instantiation): Move disabiling
      	of the style check until after preanalysis of acutals.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch13.adb: Minor reformatting.
      	* par-ch11.adb: minor style fix in whitespace
      	* gnatbind.adb (Gnatbind): Scope of Std_Lib_File
      	reduced to Add_Artificial_ALI_File; style fix in declaration of
      	Text; grammar fix in comment.
      	* osint-c.adb (Read_Library_Info): strip trailing NUL from result.
      	* freeze.adb: Cleanup to pass pragma instead of
      	expression to call.
      	* exp_spark.adb (Expand_SPARK_Attribute_Reference): New procedure to
      	replace System'To_Address by equivalent call.
      
      From-SVN: r244401
      Arnaud Charlet committed
    • [multiple changes] · e4d04166
      2017-01-13  Arnaud Charlet  <charlet@adacore.com>
      
      	* bindusg.adb: Improve usage output for -f switch.
      
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* frontend.adb, freeze.adb, sem_res.adb, sem_attr.adb, sem_ch8.adb:
      	Minor reformatting.
      
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Is_Predicate_Static): Following the intent of the RM,
      	treat comparisons on strings as legal in a Static_Predicate.
      	(Is_Predicate_Static, Is_Type_Ref): Predicate also returns true on
      	a function call that is the expansion of a string comparison.The
      	function call is built when compiling the corresponding predicate
      	function, but the expression has been found legal as a static
      	predicate during earlier analysis.
      	* sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Handle
      	properly a function call that is the expansion of a string
      	comparison operation, in order to recover the Static_Predicate
      	expression and apply it to a static argument when needed.
      
      From-SVN: r244400
      Arnaud Charlet committed
    • [multiple changes] · 66340e0e
      2017-01-13  Tristan Gingold  <gingold@adacore.com>
      
      	* s-mmap.adb, s-mmap.ads (Open_Read_No_Exception): New function.
      	(Open_Read): Re-implement using Open_Read_No_Exception.
      	(Open_Write): Raise exception in case of error.
      	* s-mmosin-mingw.adb (Open_Common): Do not raise exception.
      	* s-mmosin-unix.adb (Open_Read, Open_Write): Do not
      	reaise exception.
      	* s-mmosin-mingw.ads, s-mmosin-unix.ads (Open_Read): Adjust comment.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* checks.adb: Code cleanup.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* freeze.adb (Check_Inherited_Conditions): Use analyzed pragma
      	expression instead of unanalyzed aspect expression for checking
      	the validity of inheriting an operation. Also copy the expression
      	being passing it to Build_Class_Wide_Expression, as this call
      	modifies its argument.
      	* sem_util.ads Fix comment to reference correct function name
      	New_Copy_Tree.
      
      2017-01-13  Javier Miranda  <miranda@adacore.com>
      
      	* sem_res.adb (Resolve_Generalized_Indexing): Compiling in ASIS mode,
      	when we propagate information about the indexes back to the original
      	indexing mode and the prefix of the index is a function call, do not
      	remove any parameter from such call.
      
      2017-01-13  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch6.ads (Needs_BIP_Finalization_Master): Update comment.
      	* exp_ch6.adb (Needs_BIP_Finalization_Master): Return True for
      	a build-in-place function whose result type is tagged.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
      	Do not generate a wrapper when the only candidate is a class-wide
      	subprogram.
      	(Analyze_Subprogram_Renaming): Do not freeze the renaming or renamed
      	inside a generic context.
      
      From-SVN: r244399
      Arnaud Charlet committed
    • [multiple changes] · 27bb7941
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Add_Inherited_Tagged_DIC):
      	Pass the object parameters of both the parent and the derived
      	type DIC procedure to the reference replacement circuitry.
      	(Find_DIC_Type): Modify the circuitry to present the partial
      	view of a private type in case the private type defines its own
      	DIC pragma.
      	(Replace_Object_And_Primitive_References): Add two
      	optional formal parameters.  Update the comment on usage. Update
      	the replacement of references to object parameters.
      
      2017-01-13  Gary Dismukes  <dismukes@adacore.com>
      
      	* einfo.adb, sem_ch6.adb, atree.adb: Minor reformatting and typo fix.
      
      2017-01-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Actuals): Apply Scalar_Range_Check to
      	an out parameter that is a type conversion, independently of th
      	range check that may apply to the expression of the conversion,
      	for use in GNATProve.
      
      2017-01-13  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb (Gnat1drv): Move the implicit with for System in
      	GNATprove_Mode here to Frontend.
      	* frontend.adb (Frontend): Move the implicit with for System
      	in GNATprove_Mode here as it ismore correct this way; the old
      	place only worked by chance, since there were no overloaded names.
      	* rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Tasking_State.
      	* sem_attr.adb (Analyze_Attribute): In GNATprove_Mode, for the
      	four attributes identified in SRM 9(18), add an implicit with
      	to Ada.Task_Identification.
      	* sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
      	Deal specially with the wrapper introduced for AI05-0071 in GNATprove
      	mode.
      	* checks.adb (Apply_Discriminant_Check,
      	Apply_Selected_Length_Checks, Apply_Selected_Range_Checks):
      	In GNATprove mode, we do not apply the checks, but we still
      	analyze the expression to possibly issue errors on SPARK
      	code when a run-time error can be detected at compile time.
      	(Selected_Length_Checks, Selected_Range_Checks): Perform analysis
      	in GNATprove mode.
      
      From-SVN: r244398
      Arnaud Charlet committed
    • Minor reformatting. · 9574e75f
      From-SVN: r244397
      Arnaud Charlet committed
    • [multiple changes] · b0bf18ad
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* expander.adb (Expand): Add a warning about using return
      	statements in Ghost management code.
      	* exp_ch3.adb (Freeze_Type): Add a warning about using return
      	statements in Ghost management code.
      	* exp_ch7.adb (Build_Invariant_Procedure_Body,
      	Build_Invariant_Procedure_Declaration): Add a warning about
      	using return statements in Ghost management code.
      	* exp_disp.adb (Make_DT): Add a warning about using return
      	statements in Ghost management code.
      	* exp_util.adb (Build_DIC_Procedure_Body,
      	Build_DIC_Procedure_Declaration, Make_Predicated_Call): Add a
      	warning about using return statements in Ghost management code.
      	* freeze.adb (Freeze_Entity): Add a warning about using return
      	statements in Ghost management code.
      	* sem.adb (Analyze, Do_Analyze): Add a warning about using return
      	statements in Ghost management code.
      	* sem_ch3.adb (Analyze_Object_Declaration, Process_Full_View): Add
      	a warning about using return statements in Ghost management code.
      	* sem_ch5.adb (Analyze_Assignment): Add a warning about using
      	return statements in Ghost management code.
      	* sem_ch6.adb (Analyze_Procedure_Call,
      	Analyze_Subprogram_Body_Helper): Add a warning about using return
      	statements in Ghost management code.
      	* sem_ch7.adb (Analyze_Package_Body_Helper): Add a warning about
      	using return statements in Ghost management code.
      	* sem_ch12.adb (Analyze_Package_Instantiation,
      	Analyze_Subprogram_Instantiation, Instantiate_Package_Body,
      	Instantiate_Subprogram_Body): Add a warning about using return
      	statements in Ghost management code.
      	* sem_ch13.adb (Build_Predicate_Functions,
      	Build_Predicate_Function_Declarations): Add a warning about
      	using return statements in Ghost management code.
      	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part,
      	Analyze_Initial_Condition_In_Decl_Part, Analyze_Pragma,
      	Analyze_Pre_Post_Condition_In_Decl_Part):  Add a warning about
      	using return statements in Ghost management code.
      
      2017-01-13  Tristan Gingold  <gingold@adacore.com>
      
      	* s-mmosin-mingw.adb: Fix pragma import.
      
      2017-01-13  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Ignore -gnateE in
      	codepeer mode.
      
      From-SVN: r244396
      Arnaud Charlet committed
    • atree.adb (Allocate_Initialize_Node): A newly created node is no longer marked… · d65a80fd
      atree.adb (Allocate_Initialize_Node): A newly created node is no longer marked as Ghost at this level.
      
      2017-01-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* atree.adb (Allocate_Initialize_Node): A newly created node is
      	no longer marked as Ghost at this level.
      	(Mark_New_Ghost_Node): New routine.
      	(New_Copy): Mark the copy as Ghost.
      	(New_Entity): Mark the entity as Ghost.
      	(New_Node): Mark the node as Ghost.
      	* einfo.adb (Is_Checked_Ghost_Entity): This attribute can now
      	apply to unanalyzed entities.
      	(Is_Ignored_Ghost_Entity): This attribute can now apply to unanalyzed
      	entities.
      	(Set_Is_Checked_Ghost_Entity): This attribute now
      	applies to all entities as well as unanalyzed entities.
      	(Set_Is_Ignored_Ghost_Entity): This attribute now applies to
      	all entities as well as unanalyzed entities.
      	* expander.adb Add with and use clauses for Ghost.
      	(Expand): Install and revert the Ghost region associated with the node
      	being expanded.
      	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove all Ghost-related code.
      	(Expand_Freeze_Class_Wide_Type): Remoe all Ghost-related code.
      	(Expand_Freeze_Enumeration_Type): Remove all Ghost-related code.
      	(Expand_Freeze_Record_Type): Remove all Ghost-related code.
      	(Freeze_Type): Install and revert the Ghost region associated
      	with the type being frozen.
      	* exp_ch5.adb Remove with and use clauses for Ghost.
      	(Expand_N_Assignment_Statement): Remove all Ghost-related code.
      	* exp_ch6.adb Remove with and use clauses for Ghost.
      	(Expand_N_Procedure_Call_Statement): Remove all Ghost-relatd code.
      	(Expand_N_Subprogram_Body): Remove all Ghost-related code.
      	* exp_ch7.adb (Build_Invariant_Procedure_Body): Install and revert the
      	Ghost region of the working type.
      	(Build_Invariant_Procedure_Declaration): Install and revert
      	the Ghost region of the working type.
      	(Expand_N_Package_Body): Remove all Ghost-related code.
      	* exp_ch8.adb Remove with and use clauses for Ghost.
      	(Expand_N_Exception_Renaming_Declaration): Remove all Ghost-related
      	code.
      	(Expand_N_Object_Renaming_Declaration): Remove all Ghost-related code.
      	(Expand_N_Package_Renaming_Declaration): Remove all Ghost-related code.
      	(Expand_N_Subprogram_Renaming_Declaration): Remove all Ghost-related
      	code.
      	* exp_ch13.adb Remove with and use clauses for Ghost.
      	(Expand_N_Freeze_Entity): Remove all Ghost-related code.
      	* exp_disp.adb (Make_DT): Install and revert the Ghost region of
      	the tagged type. Move the generation of various entities within
      	the Ghost region of the type.
      	* exp_prag.adb Remove with and use clauses for Ghost.
      	(Expand_Pragma_Check): Remove all Ghost-related code.
      	(Expand_Pragma_Contract_Cases): Remove all Ghost-related code.
      	(Expand_Pragma_Initial_Condition): Remove all Ghost-related code.
      	(Expand_Pragma_Loop_Variant): Remove all Ghost-related code.
      	* exp_util.adb (Build_DIC_Procedure_Body): Install
      	and revert the Ghost region of the working types.
      	(Build_DIC_Procedure_Declaration): Install and revert the
      	Ghost region of the working type.
      	(Make_Invariant_Call): Install and revert the Ghost region of the
      	associated type.
      	(Make_Predicate_Call): Reimplemented. Install and revert the
      	Ghost region of the associated type.
      	* freeze.adb (Freeze_Entity): Install and revert the Ghost region
      	of the entity being frozen.
      	(New_Freeze_Node): Removed.
      	* ghost.adb Remove with and use clauses for Opt.
      	(Check_Ghost_Completion): Update the parameter profile
      	and all references to formal parameters.
      	(Ghost_Entity): Update the comment on usage.
      	(Install_Ghost_Mode): New routines.
      	(Is_Ghost_Assignment): New routine.
      	(Is_Ghost_Declaration): New routine.
      	(Is_Ghost_Pragma): New routine.
      	(Is_Ghost_Procedure_Call): New routine.
      	(Is_Ghost_Renaming): Removed.
      	(Is_OK_Declaration): Reimplemented.
      	(Is_OK_Pragma): Reimplemented.
      	(Is_OK_Statement): Reimplemented.
      	(Is_Subject_To_Ghost): Update the comment on usage.
      	(Mark_And_Set_Ghost_Assignment): New routine.
      	(Mark_And_Set_Ghost_Body): New routine.
      	(Mark_And_Set_Ghost_Completion): New routine.
      	(Mark_And_Set_Ghost_Declaration): New routine.
      	(Mark_And_Set_Ghost_Instantiation): New routine.
      	(Mark_And_Set_Ghost_Procedure_Call): New routine.
      	(Mark_Full_View_As_Ghost): Removed.
      	(Mark_Ghost_Declaration_Or_Body): New routine.
      	(Mark_Ghost_Pragma): New routine.
      	(Mark_Ghost_Renaming): New routine.
      	(Mark_Pragma_As_Ghost): Removed.
      	(Mark_Renaming_As_Ghost): Removed.
      	(Propagate_Ignored_Ghost_Code): Update the comment on usage.
      	(Prune_Node): Freeze nodes no longer need special pruning, they
      	are processed by the general ignored Ghost code mechanism.
      	(Restore_Ghost_Mode): New routine.
      	(Set_Ghost_Mode): Reimplemented.
      	(Set_Ghost_Mode_From_Entity): Removed.
      	* ghost.ads Add with and use clauses for Ghost.
      	(Check_Ghost_Completion): Update the parameter profile
      	along with the comment on usage.
      	(Install_Ghost_Mode): New routine.
      	(Is_Ghost_Assignment): New routine.
      	(Is_Ghost_Declaration): New routine.
      	(Is_Ghost_Pragma): New routine.
      	(Is_Ghost_Procedure_Call): New routine.
      	(Mark_And_Set_Ghost_Assignment): New routine.
      	(Mark_And_Set_Ghost_Body): New routine.
      	(Mark_And_Set_Ghost_Completion): New routine.
      	(Mark_And_Set_Ghost_Declaration): New routine.
      	(Mark_And_Set_Ghost_Instantiation): New routine.
      	(Mark_And_Set_Ghost_Procedure_Call): New routine.
      	(Mark_Full_View_As_Ghost): Removed.
      	(Mark_Ghost_Pragma): New routine.
      	(Mark_Ghost_Renaming): New routine.
      	(Mark_Pragma_As_Ghost): Removed.
      	(Mark_Renaming_As_Ghost): Removed.
      	(Restore_Ghost_Mode): New routine.
      	(Set_Ghost_Mode): Redefined.
      	(Set_Ghost_Mode_From_Entity): Removed.
      	* sem.adb (Analyze): Install and revert the Ghost region of the
      	node being analyzed.
      	(Do_Analyze): Change the way a clean Ghost
      	region is installed and reverted.
      	* sem_ch3.adb (Analyze_Full_Type_Declaration): Remove
      	all Ghost-related code.
      	(Analyze_Incomplete_Type_Decl): Remove all Ghost-related code.
      	(Analyze_Number_Declaration): Remove all Ghost-related code.
      	(Analyze_Object_Declaration): Install and revert the Ghost region of
      	a deferred object declaration's completion.
      	(Array_Type_Declaration): Remove all Ghost-related code.
      	(Build_Derived_Type): Update the comment on
      	the propagation of Ghost attributes from a parent to a derived type.
      	(Derive_Subprogram): Remove all Ghost-related code.
      	(Make_Class_Wide_Type): Remove all Ghost-related code.
      	(Make_Implicit_Base): Remove all Ghost-related code.
      	(Process_Full_View): Install and revert the Ghost region of
      	the partial view.  There is no longer need to check the Ghost
      	completion here.
      	* sem_ch5.adb (Analyze_Assignment): Install and revert the Ghost
      	region of the left hand side.
      	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
      	all Ghost-related code.
      	(Analyze_Expression_Function): Remove all Ghost-related code.
      	(Analyze_Generic_Subprogram_Body): Remove all Ghost-related code.
      	(Analyze_Procedure_Call): Install and revert the Ghost region of
      	the procedure being called.
      	(Analyze_Subprogram_Body_Helper): Install and revert the Ghost
      	region of the spec or body.
      	(Analyze_Subprogram_Declaration): Remove all Ghost-related code.
      	(Build_Subprogram_Declaration): Remove all Ghost-related code.
      	(Find_Corresponding_Spec): Remove all Ghost-related code.
      	(Process_Formals): Remove all Ghost-related code.
      	* sem_ch7.adb (Analyze_Package_Body_Helper): Install and revert
      	the Ghost region of the spec.
      	(Analyze_Package_Declaration): Remove all Ghost-related code.
      	* sem_ch8.adb (Analyze_Exception_Renaming): Mark a renaming as
      	Ghost when it aliases a Ghost entity.
      	(Analyze_Generic_Renaming): Mark a renaming as Ghost when it aliases
      	a Ghost entity.
      	(Analyze_Object_Renaming): Mark a renaming as Ghost when
      	it aliases a Ghost entity.
      	(Analyze_Package_Renaming): Mark a renaming as Ghost when it aliases
      	a Ghost entity.
      	(Analyze_Subprogram_Renaming): Mark a renaming as Ghost when it
      	aliases a Ghost entity.
      	* sem_ch11.adb Remove with and use clauses for Ghost.
      	(Analyze_Exception_Declaration): Remove all Ghost-related code.
      	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Remove all
      	Ghost-related code.
      	(Analyze_Generic_Subprogram_Declaration): Remove all Ghost-related
      	code.
      	(Analyze_Package_Instantiation): Install and revert the Ghost region
      	of the package instantiation.
      	(Analyze_Subprogram_Instantiation): Install
      	and revert the Ghost region of the subprogram instantiation.
      	(Instantiate_Package_Body): Code clean up. Install and revert the
      	Ghost region of the package body.
      	(Instantiate_Subprogram_Body): Code clean up. Install and revert the
      	Ghost region of the subprogram body.
      	* sem_ch13.adb (Build_Predicate_Functions): Install
      	and revert the Ghost region of the related type.
      	(Build_Predicate_Function_Declaration): Code clean up. Install
      	and rever the Ghost region of the related type.
      	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
      	Install and revert the Ghost region of the pragma.
      	(Analyze_Initial_Condition_In_Decl_Part): Install and revert the
      	Ghost region of the pragma.
      	(Analyze_Pragma): Install and revert the Ghost region of various
      	pragmas.  Mark a pragma as Ghost when it is related to a Ghost entity
      	or encloses a Ghost entity.
      	(Analyze_Pre_Post_Condition): Install and revert the Ghost
      	region of the pragma.
      	(Analyze_Pre_Post_Condition_In_Decl_Part): Install and revert the
      	Ghost region of the pragma.
      	* sem_res.adb (Resolve): Remove all Ghost-related code.
      	* sem_util.adb (Is_Declaration): Reimplemented.
      	(Is_Declaration_Other_Than_Renaming): New routine.
      	* sem_util.ads (Is_Declaration_Other_Than_Renaming): New routine.
      	* sinfo.adb (Is_Checked_Ghost_Pragma): New routine.
      	(Is_Ghost_Pragma): Removed.
      	(Is_Ignored_Ghost_Pragma): New routine.
      	(Set_Is_Checked_Ghost_Pragma): New routine.
      	(Set_Is_Ghost_Pragma): Removed.
      	(Set_Is_Ignored_Ghost_Pragma): New routine.
      	* sinfo.ads: Update the documentation on Ghost mode and
      	Ghost regions.	New attributes Is_Checked_Ghost_Pragma
      	and Is_Ignored_Ghost_Pragma along with usages in nodes.
      	Remove attribute Is_Ghost_Pragma along with usages in nodes.
      	(Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
      	(Is_Ghost_Pragma): Removed along with pragma Inline.
      	(Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
      	(Set_Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
      	(Set_Is_Ghost_Pragma): Removed along with pragma Inline.
      	(Set_Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
      
      From-SVN: r244395
      Hristian Kirtchev committed
    • re PR tree-optimization/77283 (Revision 238005 disables loop unrolling) · 3c3b9090
      2017-01-13  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/77283
      	* gcc.dg/tree-ssa/split-path-9.c: Fix.
      
      From-SVN: r244394
      Richard Biener committed
    • gimple-parser.c (c_parser_gimple_postfix_expression): Parse _Literal ( type-name ) number. · 25329913
      2017-01-13  Richard Biener  <rguenther@suse.de>
      
      	c/
      	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
      	_Literal ( type-name ) number.
      
      	* tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
      	as _Literal ( type ) number in case usual suffixes do not
      	preserve all information.
      
      	* gcc.dg/gimplefe-22.c: New testcase.
      
      From-SVN: r244393
      Richard Biener committed
    • re PR tree-optimization/77283 (Revision 238005 disables loop unrolling) · 10b70b8e
      2017-01-13  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/77283
      	* gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
      	and ssa-iterators.h.
      	(is_feasible_trace): Implement a cost model based on joiner
      	PHI node uses.
      
      	* gcc.dg/tree-ssa/split-path-7.c: Adjust.
      	* gcc.dg/tree-ssa/split-path-8.c: New testcase.
      	* gcc.dg/tree-ssa/split-path-9.c: Likewise.
      
      From-SVN: r244392
      Richard Biener committed
    • Daily bump. · 53b586f2
      From-SVN: r244391
      GCC Administrator committed
  2. 12 Jan, 2017 9 commits