Commit Graph

233 Commits

Author SHA1 Message Date
Arnaud Charlet ec2255295c [multiple changes]
2016-10-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function):
	Remove the aspects of the original expression function has been
	rewritten into a subprogram declaration or a body. Reinsert the
	aspects once they have been analyzed.

2016-10-13  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Expand_N_Asynchronous_Select): Return immediately
	on restricted profile.

2016-10-13  Javier Miranda  <miranda@adacore.com>

	* sem_prag.adb
	(Process_Compile_Time_Warning_Or_Error): Register the pragma
	for its validation after the backend has been called only if its
	expression has some occurrence of attributes 'size or 'alignment
	* table.ads (Release_Threshold): New formal.
	(Release): Adding documentation of its new functionality.
	* table.adb (Release): Extend its functionality with a
	Release_Threshold.
	* nlists.adb (Next_Node table): Set its Release_Threshold.
	* atree.adb (Orig_Nodes table): Set its Release_Threshold.
	* atree.ads (Nodes table): Set its Release_Threshold.
	(Flags table): Set its Release_Threshold.
	* alloc.ads (Nodes_Release_Threshold): New constant declaration.
	(Orig_Nodes_Release_Threshold): New constant declaration.
	* debug.adb (switch d.9): Left free.
	* gnat1drv.adb (Post_Compilation_Validation_Checks): Enable
	validation of pragmas Compile_Time_Error and Compile_Time_Warning.

From-SVN: r241117
2016-10-13 15:00:54 +02:00
Arnaud Charlet 8eb8461dc1 [multiple changes]
2016-10-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Create_Extra_Formals): Generate
	an Itype reference for the object extra formal in case the
	subprogram is called within the same or nested scope.

2016-10-13  Claire Dross  <dross@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification):
	Also create a renaming in GNATprove mode.

2016-10-13  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Fixed_Point_Type): in SPARK mode, the
	given bounds of the type must be strictly representable, and the
	range reduction by one delta ("shaving") allowed by the Ada RM,
	is not applicable in SPARK.

2016-10-13  Javier Miranda  <miranda@adacore.com>

	* debug.adb (switch d.9): Used to temporarily disable the support
	needed for this enhancement since it causes regressions with
	large sources.
	* gnat1drv.adb (Post_Compilation_Validation_Checks): Temporarily
	leave the validation of pragmas Compile_Time_Warning and
	Compile_Time_Error under control of -gnatd.9/

From-SVN: r241115
2016-10-13 14:58:24 +02:00
Javier Miranda a946a5c38d sem_prag.ads (Process_Compile_Time_Warning_Or_Error): New overloaded subprogram that factorizes code executed as part of the regular...
2016-10-13  Javier Miranda  <miranda@adacore.com>

	* sem_prag.ads (Process_Compile_Time_Warning_Or_Error): New
	overloaded subprogram that factorizes code executed as part
	of the regular processing of these pragmas and as part of its
	validation after invoking the backend.
	* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): New
	subprogram.
	(Process_Compile_Time_Warning_Or_Error): If the
	condition is known at compile time then invoke the new overloaded
	subprogram; otherwise register the pragma in a table to validate
	it after invoking the backend.
	* sem.ads, sem.adb (Unlock): New subprogram.
	* sem_attr.adb (Analyze_Attribute [Size]): If we are processing
	pragmas Compile_Time_Warning and Compile_Time_Errors after the
	backend has been called then evaluate this attribute if 'Size
	is known at compile time.
	* gnat1drv.adb (Post_Compilation_Validation_Checks): Validate
	compile time warnings and errors.
	* sem_ch13.ads, sem_ch13.adb (Validate_Compile_Time_Warning_Error):
	New subprogram.
	(Validate_Compile_Time_Warning_Errors): New subprogram.

From-SVN: r241107
2016-10-13 14:12:18 +02:00
Arnaud Charlet 05f1a54316 [multiple changes]
2016-10-12  Yannick Moy  <moy@adacore.com>

	* einfo.adb, einfo.ads (Partial_Refinement_Constituents): Take
	into account constituents that are themselves abstract states
	with full or partial refinement visible.
	* sem_prag.adb (Find_Encapsulating_State): Move function
	to library-level, to share between subprograms.
	(Analyze_Refined_Global_In_Decl_Part): Use
	Find_Encapsulating_State to get relevant encapsulating state.

2016-10-12  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Fix minor typo.

From-SVN: r241052
2016-10-12 16:37:35 +02:00
Arnaud Charlet d030f3a451 [multiple changes]
2016-07-06  Arnaud Charlet  <charlet@adacore.com>

	* lib.adb (Check_Same_Extended_Unit): Complete previous change.
	* sem_intr.adb (Errint): New parameter Relaxed. Refine previous
	change to only disable errors selectively.
	* sem_util.adb: minor style fix in object declaration

2016-07-06  Yannick Moy  <moy@adacore.com>

	* sem_warn.adb (Check_Infinite_Loop_Warning.Find_Var): Special case a
	call to a volatile function, so that it does not lead to a warning in
	that case.

2016-07-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch12.adb, sem_ch4.adb, sem_ch6.adb: Minor reformatting.

2016-07-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* gnat1drv.adb: Code clean up. Do not emit any
	code generation errors when the unit is ignored Ghost.

2016-07-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_eval.adb (Check_Non_Static_Context): If the expression
	is a real literal of a floating point type that is part of a
	larger expression and is not a static expression, transform it
	into a machine number now so that the rest of the computation,
	even if other components are static, is not evaluated with
	extra precision.

2016-07-06  Javier Miranda  <miranda@adacore.com>

	* sem_ch13.adb (Freeze_Entity_Checks): Undo previous patch and move the
	needed functionality to Analyze_Freeze_Generic_Entity.
	(Analyze_Freeze_Generic_Entity): If the entity is not already frozen
	and has delayed aspects then analyze them.

2016-07-06  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma.Process_Inline.Set_Inline_Flags):
	Special case for unanalyzed body entity of ghost expression function.

From-SVN: r238050
2016-07-06 15:38:37 +02:00
Arnaud Charlet d4b56371aa [multiple changes]
2016-07-04  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch12.ads, freeze.adb: Minor reformatting and typo fixes.

2016-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (New_Stream_Subprogram): If the attribute
	definition clause comes from an aspect specification, place the
	generated subprogram renaming in the freeze actions of the type.

2016-07-04  Philippe Gil  <gil@adacore.com>

	* g-debpoo.adb (Dump.Do_Report) - add space prefix to backtrace
	address dump - avoid new line sent directly to stdout.

2016-07-04  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb, sem_ch12.adb, sem_elab.adb, sem_prag.adb, sem_res.adb:
	Relax elaboration checks in SPARK_Mode so that we rely on the
	static elaboration model (if used). We'll have a more precise
	check performed in flow analysis of gnat2why.

From-SVN: r237968
2016-07-04 12:38:22 +02:00
Arnaud Charlet d1b83e6253 [multiple changes]
2016-06-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Overridden_Ancestor): Clean up code to use
	controlling type of desired primitive rather than its scope,
	because the primitive that inherits the classwide condition may
	comes from several derivation steps.

2016-06-16  Javier Miranda  <miranda@adacore.com>

	* einfo.adb (Set_Default_Init_Cond_Procedure): Allow calls setting
	this attribute to Empty (only if the attribute has not been set).
	* sem_util.adb (Build_Default_Init_Cond_Procedure_Body):
	No action needed if the spec was not built.
	(Build_Default_Init_Cond_Procedure_Declaration): The spec is
	not built if DIC is set to NULL or no condition was specified.
	* exp_ch3.adb (Expand_N_Object_Declaration): Check availability
	of the Init_Cond procedure before generating code to call it.

2016-06-16  Emmanuel Briot  <briot@adacore.com>

	* s-regpat.adb: Fix invalid index check when matching end-of-line
	on substrings.

2016-06-16  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Minor reformatting.

From-SVN: r237516
2016-06-16 12:27:34 +02:00
Arnaud Charlet 44900051ac [multiple changes]
2016-06-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Associations): An actual parameter
	with a box must be included in the count of actuals, to detect
	possible superfluous named actuals that do not match any of the
	formals of the generic unit in a formal package declaration.

2016-06-14  Justin Squirek  <squirek@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Fix formatting
	of error output related to SPARK RM 6.1.7(3) and pragma
	Extensions_Visible.
	* sem_ch4.adb (Analyze_Type_Conversion): Fix formatting of error
	output related to SPARK RM 6.1.7(3) and pragma Extensions_Visible.
	* sem_prag.adb (Analyze_Pragma): Fix formatting of error output
	related to SPARK RM 7.1.2(15) and pragma Volatile_Function
	so that the values True and False are no longer surrounded by
	double quotes.
	* sem_res.adb (Resolve_Actuals): Fix formatting of error output
	related to SPARK RM 6.1.7(3) and pragma Extensions_Visible.

2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Enable access checks
	in codepeer mode.
	* freeze.adb: Minor grammar fix in comment.

From-SVN: r237433
2016-06-14 14:20:01 +02:00
Arnaud Charlet 0da343bce0 [multiple changes]
2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* lib.adb: Minor reformatting.
	* sem_util.adb (Is_OK_Volatile_Context): Do
	include Address in the supported attributes.

2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression):
	Code cleanup. Finalize any transient controlled
	objects on exit from a case expression alternative.
	(Expand_N_If_Expression): Code cleanup.
	(Process_Actions): Removed.
	(Process_If_Case_Statements): New routine.
	(Process_Transient_Object): Change the name of formal Rel_Node to
	N and update all occurrences. Update the comment on usage. When
	the type of the context is Boolean, the proper insertion point
	for the finalization call is after the last declaration.

2016-06-14  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.ads, lib-xref.adb (Has_Deferred_Reference): new
	predicate to determine whether an entity appears in a context
	for which a Deferred_Reference was created, because it is not
	possible to determine when reference is analyzed whether it
	appears in a context in which the entity is modified.
	* sem_ch5.adb (Analyze_Statement): Do not emit a useless warning
	on assignment for an entity that has a deferred_reference.

2016-06-14  Javier Miranda  <miranda@adacore.com>

	* sem_res.adb (Resolve_Actuals): Generate a reference to actuals that
	come from source. Previously the reference was generated only if the
	call comes from source but the call may be rewritten by the expander
	thus causing the notification of spurious warnings.

2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Remove further references to AAMP.
	* checks.adb (Apply_Scalar_Range_Check): Take
	Check_Float_Overflow info account.
	* live.ads, live.adb Added subprogram headers and
	start-of-processing-for comments.
	* sem_ch12.adb (Instantiate_Package_Body): Do not suppress
	checks when instantiating runtime units in CodePeer mode.

From-SVN: r237432
2016-06-14 14:17:48 +02:00
Arnaud Charlet a5150cb18f [multiple changes]
2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Only consider
	nodes from sources.

2016-06-14  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb, gnat1drv.adb (Adjust_Global_Switches): Only disable
	simple value propagation in CodePeer mode when warnings are disabled.
	(Scan_Front_End_Switches): Enable relevant front-end switches
	when using -gnateC.

2016-06-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Is_OK_Volatile_Context): A
	reference to a volatile object is considered OK if appears as
	the prefix of attributes Address, Alignment, Component_Size,
	First_Bit, Last_Bit, Position, Size, Storage_Size.

2016-06-14  Yannick Moy  <moy@adacore.com>

	* lib-xref-spark_specific.adb (Add_SPARK_File): Do not traverse
	subunits directly, as they are already traversed as part of the
	top-level unit to which they belong.
	(Add_SPARK_Xrefs): Add assertions to ensure correct sorting.
	(Generate_Dereference): Use unique definition place for special
	variable __HEAP, to ensure correct sorting of references.
	* lib-xref.adb (Generate_Reference): Use top-level unit in case
	of subunits.
	* lib.adb, lib.ads (Get_Top_Level_Code_Unit): New functions that
	compute the top-level code unit for a source location of AST node,
	that go past subunits.

From-SVN: r237431
2016-06-14 14:12:42 +02:00
Arnaud Charlet 2cc2e9642b [multiple changes]
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
	gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
	fixes.
	* sem_prag.adb, sem_ch12.adb: Minor typo fixes.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
	function call may be wrapped in an explicit type conversion.

2016-05-02  Jerome Lambourg  <lambourg@adacore.com>

	* interfac.ads: use pragma No_Elaboration_Code_All.
	* s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Analyze: If node is an error node previously created
	by the parser, disable expansion to prevent subsequent glitches
	in error recovery.

From-SVN: r235736
2016-05-02 12:10:01 +02:00
Arnaud Charlet 32b794c81a [multiple changes]
2016-05-02  Tristan Gingold  <gingold@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected
	to check for the no local protected objects restriction.

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb Anonymous_Master now uses Node35.
	(Anonymous_Master): Update the assertion and node reference.
	(Set_Anonymous_Master): Update the assertion and node reference.
	(Write_Field35_Name): Add output for Anonymous_Master.
	(Write_Field36_Name): The output is now undefined.
	* einfo.ads Update the node and description of attribute
	Anonymous_Master. Remove prior occurrences in entities as this
	is now a type attribute.
	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove local variable
	Ins_Node. Anonymous access- to-controlled component types no
	longer need finalization masters. The master is now built when
	a related allocator is expanded.
	(Expand_Freeze_Record_Type): Remove local variable Has_AACC. Do not
	detect whether the record type has at least one component of anonymous
	access-to- controlled type. These types no longer need finalization
	masters. The master is now built when a related allocator is expanded.
	* exp_ch4.adb Remove with and use clauses for Lib and Sem_Ch8.
	(Current_Anonymous_Master): Removed.
	(Expand_N_Allocator): Call Build_Anonymous_Master to create a
	finalization master for an anonymous access-to-controlled type.
	* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
	Call routine Build_Anonymous_Master to create a finalization master
	for an anonymous access-to-controlled type.
	* exp_ch7.adb (Allows_Finalization_Master): New routine.
	(Build_Anonymous_Master): New routine.
	(Build_Finalization_Master): Remove formal parameter
	For_Anonymous. Use Allows_Finalization_Master to determine whether
	circumstances warrant a finalization master. This routine no
	longer creates masters for anonymous access-to-controlled types.
	(In_Deallocation_Instance): Removed.
	* exp_ch7.ads (Build_Anonymous_Master): New routine.
	(Build_Finalization_Master): Remove formal parameter For_Anonymous
	and update the comment on usage.
	* sem_util.adb (Get_Qualified_Name): New routines.
	(Output_Name): Reimplemented.
	(Output_Scope): Removed.
	* sem_util.ads (Get_Qualified_Name): New routines.

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* debug.adb: Document the use of switch -gnatd.H.
	* gnat1drv.adb (Adjust_Global_Switches): Set ASIS_GNSA mode when
	-gnatd.H is present.
	(Gnat1drv): Suppress the call to gigi when ASIS_GNSA mode is active.
	* opt.ads: Add new option ASIS_GNSA_Mode.
	* sem_ch13.adb (Alignment_Error): New routine.
	(Analyze_Attribute_Definition_Clause): Suppress certain errors in
	ASIS mode for attribute clause Alignment, Machine_Radix, Size, and
	Stream_Size.
	(Check_Size): Use routine Size_Too_Small_Error to
	suppress certain errors in ASIS mode.
	(Get_Alignment_Value): Use routine Alignment_Error to suppress certain
	errors in ASIS mode.
	(Size_Too_Small_Error): New routine.

From-SVN: r235732
2016-05-02 12:05:03 +02:00
Arnaud Charlet f916243bde [multiple changes]
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb
	(Minimize_Expression_With_Actions): New flag.
	(Adjust_Global_Switches): Set Minimize_Expression_With_Actions
	when generating C.
	(Resolve_Short_Circuit): Redo previous change
	using Minimize_Expression_With_Actions.
	(Expand_N_If_Expression,
	Expand_Short_Circuit_Operator): Restore old code to avoid
	Expression_With_Actions when Minimize_Expression_With_Actions
	is set.

2016-04-18  Vincent Celier  <celier@adacore.com>

	* s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and
	Stderr_File): Close local file descriptors when no longer needed.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK
	mode check that the type of the cursor in an iteration over
	a formal container is not volatile. The proper check on the
	element type is done elsewhere.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Process_Formals): Do not set a delay freeze on
	a subprogram that returns a class-wide type, if the subprogram
	is a compilation unit, because otherwise gigi will treat the
	subprogram as external, leading to link errors.

From-SVN: r235141
2016-04-18 14:44:01 +02:00
Arnaud Charlet 520c0201eb [multiple changes]
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New.
	* gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them.
	* debug.adb: Reserve -gnatd.4 to force generation of C files.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static
	division by zero, instead possibly issue a warning.
	* sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on
	static division by zero, instead add check flag on original
	expression.
	* sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error):
	Only issue error when both SPARK_Mode is On and Warn is False.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): Force
	warning instead of error when SPARK_Mode is On, on index out of
	bounds, and set check flag for GNATprove.

From-SVN: r235138
2016-04-18 14:33:46 +02:00
Arnaud Charlet a6363ed30e [multiple changes]
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component, Has_Dereference):
	Refine check on illegal calls to entities within a task body,
	when the entity is declared in an object of the same type. In
	a generic context there might be no explicit dereference but if
	the prefix includes an access type the construct is legal.

2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add
	RE_Default_Priority.

2016-04-18  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check
	if the pragma came from an aspect specification.

2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress
	superfluous conformance check on an inlined body with a previous
	spec, use the fact that the generated declaration does not come
	from source. We must treat the entity as coming from source to
	enable some back-end inlining when pragma appears after the body.

From-SVN: r235136
2016-04-18 14:29:53 +02:00
Arnaud Charlet 4afcf3a5a0 [multiple changes]
2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* lib-xref-spark_specific.adb, par-ch2.adb, errout.ads,
	exp_intr.adb: Minor reformatting and typo corrections.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb: Code cleanup.

2016-04-18  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.adb: Minor reformatting and error message tweaking
	(remove extraneous spaces).

2016-04-18  Johannes Kanig  <kanig@adacore.com>

	* gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK.

2016-04-18  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file
	exists, and it's a fifo, we use "w" as the open string instead of
	"r+". This is necessary to make a write to the fifo block until
	a reader is ready.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_attr.adb (Denote_Same_Function): Account
	for a special case where a primitive of a tagged type inherits
	a class-wide postcondition from a parent type.

From-SVN: r235135
2016-04-18 14:27:10 +02:00
Arnaud Charlet 1f55088db5 [multiple changes]
2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used
	outside of GNATprove, hence it should not be removed.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Refinement_Clause):
	The refinement of an external abstract state can now mention
	non-external constituents.
	(Check_External_Property): Update all SPARK RM references.

2016-04-18  Bob Duff  <duff@adacore.com>

	* exp_intr.adb: Remove some duplicated code.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark
	package spec and body out of SPARK.

2016-04-18  Johannes Kanig  <kanig@adacore.com>

	* spark_xrefs.ads: Minor comment update.

2016-04-18  Johannes Kanig  <kanig@adacore.com>

	* gnat1drv.adb (Gnat1drv): Force loading of System
	unit for SPARK.

2016-04-18  Bob Duff  <duff@adacore.com>

	* a-cuprqu.adb: Correction to previous change. If a new node
	is inserted at the front of the queue (because it is higher
	priority than the previous front node), we need to update
	Header.Next_Unequal -- not just in the case where the queue was
	previously empty.

From-SVN: r235122
2016-04-18 12:41:18 +02:00
Olivier Hainque 0ab0bf955a opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ, Back_End_SJLJ and Back_End_ZCX.
2015-11-23  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <botcazou@adacore.com>

	* opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ,
	Back_End_SJLJ and Back_End_ZCX.
	(Back_End_Exceptions, Front_End_Exceptions, ZCX_Exceptions,
	SJLJ_Exceptions): New functions, reflecting properties of the current
	Exception_Mechanism.
	* opt.adb: Implement the new functions.
	* fe.h: Bind the new Exception_Mechanism and helper functions for gigi.

	* exp_ch11.adb (Expand_At_End_Handler): Replace test on mechanism by
	use of property helper and update comments.
	(Expand_Exception_Handlers): Replace tests on mechanism by use of
	helper. Restrict Abort_Defer to ZCX specifically.
	* exp_ch9.adb (Expand_N_Asynchronous_Select): Replace tests on
	mechanism by calls to helper functions. Abort_Undefer for ZCX only,
	paired with Expand_Exception_Handlers.
	* exp_sel.adb (Build_Abort_Block_Handler): Replace tests on mechanism
	by calls to helper functions. Abort_Undefer for ZCX only, paired with
	Expand_Exception_Handlers.

	* lib-writ.ads (P line documentation): Add entry for "FX",
	representative of unit compiled with Frontend_Exceptions True.
	* lib-writ.adb (Output_Main_Program_Line): Add "FX" on P line if
	compiled with Frontend_Exceptions True.

	* ali.ads (ALIs_Record): Ada a Frontend_Exceptions component, to reflect
	whether the ALI file contained an "FX" indication on the P line.
	(Frontend_Exceptions_Specified): New boolean, to keep track of whether
	at least an FX ALI file is in the closure.
	* ali.adb (Scan_ALI): Handle "FX" on the P line.
	(Initialize_ALI): Initialize Frontend_Exceptions_Specified to False.

	* targparm.ads: Update desription of exception schemes.
	(Frontend_Exceptions_On_Target): New flag, reflect Frontend_Exceptions
	set to True in system.ads, or not set at all.
	* targparm.adb (Targparm_Tags): Add FEX to convey Frontend_Exceptions.
	Rename ZCD to ZCX for consistency.
	(FEX_Str, Targparm_Str, Get_Target_Parameters): Adjust accordingly.

	* gnat1drv.adb (Adjust_Global_Switches): Adjust Exception_Mechanism
	setting, now from combination of Frontend_Exceptions and ZCX_By_Default.

	* bcheck.adb (Check_Consistent_Zero_Cost_Exception_Handling): Rename
	as ...
	(Check_Consistent_Exception_Handling): Check consistency of both
	ZCX_By_Default and Frontend_Exceptions.
	(Check_Configuration_Consistency): Check_Consistent_Exception_Handling
	if either flag was set at least once.

	* make.adb (Check): Remove processing of a possible -fsjlj coming from
	lang-specs.h.
	* gnatlink.adb (Gnatlin): Likewise.

	* gcc-interface/Makefile.in (gnatlib-sjlj/zcx): Now set
	both ZCX_By_Default and Frontend_Exceptions.
	* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable):
	Use eh property helper to test for back-end exceptions. Adjust
	mechanism name when testing for front-end sjlj.
	(case E_Procedure): Likewise.
	* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
	Likewise, and rename local variables.
	(Exception_Handler_to_gnu_sjlj): Rename as
	Exception_Handler_to_gnu_fe_sjlj.
	(Exception_Handler_to_gnu_zcx): Rename as
	Exception_Handler_to_gnu_gcc and adjust tests on eh mechanisms
	to use property helpers or correct mechanism name.


Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r230752
2015-11-23 11:20:34 +00:00
Arnaud Charlet aff557c74c [multiple changes]
2015-11-12  Bob Duff  <duff@adacore.com>

	* impunit.adb, lib-xref.ads, restrict.ads, scos.ads, sem_attr.ads,
	types.ads: Get rid of some global variables.
	* output.adb, output.ads: Move some global variables to the body.

2015-11-12  Yannick Moy  <moy@adacore.com>

	* lib-xref-spark_specific.adb
	(Is_Constant_Object_Without_Variable_Input): Add special case
	for imported constants.

2015-11-12  Philippe Gil  <gil@adacore.com>

	* g-debpoo.adb (Allocate): Avoid having allocations not handled.

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): If the expression is
	a real literal and the context type has static bounds, remove
	range check when possible.

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Collect_Primitive_Operations): If the type is
	derived from a type declared elsewhere that has an incomplete
	type declaration, the primitives are found in the scope of the
	type nat that of its ancestor.

2015-11-12  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb, debug.adb, osint-c.adb, gnat1drv.adb: Remove -gnatd.V
	debug switch.
	* exp_aggr.adb, exp_util.adb: Fix typos.

2015-11-12  Jerome Lambourg  <lambourg@adacore.com>

	* init.c: Properly adjust PC values in case of signals.

2015-11-12  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Check_Arg_Is_Library_Level_Local_Name): A
	pragma that comes from an aspect does not "come from source",
	so we need to test whether it comes from an aspect.

From-SVN: r230253
2015-11-12 14:25:40 +01:00
Arnaud Charlet 95bcd2a700 switch-c.adb, [...]: Reserve -gnateg for generation of C headers.
2015-11-12  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb, gnat1drv.adb, opt.ads: Reserve -gnateg for generation
	of C headers.

From-SVN: r230248
2015-11-12 13:00:56 +01:00
Arnaud Charlet df9ad6bc49 [multiple changes]
2015-11-12  Gary Dismukes  <dismukes@adacore.com>

	* gnat1drv.adb, opt.ads: Minor reformatting.

2015-11-12  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Number_Declaration): Call Analyze_Dimension,
	to propagate dimension information from expression to named
	number.
	* sem_dim.ads: Documentation:  number declaration and explicit
	dereference can carry dimension information.
	* sem_dim.adb (Analyze_Dimension_Number_Declaration): New
	procedure, to propagate dimension information from expression
	of declaration to named number, whose type becomes one of the
	dimensioned base types rather than universal real.
	(Analyze_Dimension_Binary_Op):
	a) If one operand is a literal that is the value of a declared
	constant after constant-foloding, use the dimensions of the
	declared constant.
	b) If an operand is a literal that is a contant-folded expression,
	and expander is active, do not report a dimension mismatch if
	literal does not carry them, because dimension matching will
	have been checked previously.

From-SVN: r230244
2015-11-12 12:54:53 +01:00
Arnaud Charlet 549cc9c2bc [multiple changes]
2015-11-12  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Selected_Component): In a synchronized
	body, a reference to an operation of an object of the same
	synchronized type was always interpreted as a reference to the
	current instance. This is not always the case, as the prefix of
	the reference may designate an object of the same type declared
	in the enclosing context prior to the body.

2015-11-12  Arnaud Charlet  <charlet@adacore.com>

	* impunit.ads, impunit.adb (Get_Kind_Of_File): New. Cleaned up
	implementation from previous Get_Kind_Of_Unit.
	(Get_Kind_Of_Unit): Reimplemented using Get_Kind_Of_File.
	* debug.adb: Remove d.4 switch, no longer used.
	* opt.ads: Update doc on Debugger_Level.
	* gnat1drv.adb: Code clean ups.
	* sinput.ads: minor fix in comment

2015-11-12  Bob Duff  <duff@adacore.com>

	* sinfo.adb, sinfo.ads, sem_ch6.adb, atree.ads: Add
	Was_Expression_Function flag, which is set in sem_ch6.adb when
	converting an Expression_Function into a Subprogram_Body.

2015-11-12  Pascal Obry  <obry@adacore.com>

	* usage.adb: Update overflow checking documentation.

From-SVN: r230243
2015-11-12 12:52:59 +01:00
Arnaud Charlet b3010f3667 [multiple changes]
2015-10-27  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Remove hard coded restrictions.

2015-10-27  Pascal Obry  <obry@adacore.com>

	* a-dirval-mingw.adb: Minor reformatting.

From-SVN: r229415
2015-10-27 12:13:20 +01:00
Arnaud Charlet a2667f14a8 [multiple changes]
2015-10-26  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (Fopen_Mode): Use "r+" for Out_File/Stream_IO,
	so the file won't be truncated on 'fopen', as required by
	AI95-00283-1.

2015-10-26  Bob Duff  <duff@adacore.com>

	* gnat1drv.adb, prj.adb, sem_ch6.adb, s-regpat.adb,
	sem_prag.adb: Fix typos.
	* einfo.ads, restrict.ads: Minor comment fixes.
	* err_vars.ads, sem_util.adb, errout.ads: Code clean up.

2015-10-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): Do not check that the
	Left-hand side is legal in an inlined body, check is done on
	the original template.

2015-10-26  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.ads, exp_util.adb (Find_Primitive_Operations): New
	subprogram to retrieve by name the possibly overloaded set of
	primitive operations of a type.
	* sem_ch4.adb (Try_Container_Indexing): Use
	Find_Primitive_Operations to handle overloaded indexing operations
	of a derived type.

From-SVN: r229343
2015-10-26 12:51:46 +01:00
Arnaud Charlet e96b7045d6 [multiple changes]
2015-10-26  Gary Dismukes  <dismukes@adacore.com>
        
        * a-reatim.adb, contracts.adb, contracts.ads: Minor reformatting and
        typo corrections.

2015-10-26  Ed Schonberg  <schonberg@adacore.com>
        
        * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not
        recheck the consistency betwen the freeze point and the end of
        declarations for the expression in an aspect specification,
        because it was done already in the analysis of the generic.
        Furthermore, the delayed analysis of an aspect of the instance
        may produce spurious errors when the generic is a child unit
        that references entities in the parent (which might not be in
        scope at the freeze point of the instance).

2015-10-26  Yannick Moy  <moy@adacore.com>
        
        * sem_res.adb (Resolve_Call): Issue info message
        instead of warning when call cannot be inlined in GNATprove mode.

2015-10-26  Arnaud Charlet  <charlet@adacore.com>
        
        * exp_ch6.adb (Build_Procedure_Form): Use _result as the
        name of the extra parameter, cleaner than a random temp name.
        * gnat1drv.adb (Gnat1drv): Code clean up.

From-SVN: r229314
2015-10-26 11:12:40 +01:00
Arnaud Charlet 2700b9c1ee [multiple changes]
2015-10-23  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Adjust.

2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_dbug.ads, exp_dbug.adb (Get_External_Name): The special prefix for
	ignored Ghost entities is now ___ghost_.

2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* ghost.adb (Is_Subject_To_Ghost): Check the
	original node when searching for pragma Ghost to catch cases
	where a source construct has been rewritten into something else.

2015-10-23  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb (Rewritten_For_C): New flag on functions
	that return a constrained array type.  When generating C these
	functions are rewritten as procedures with an out parameter,
	and calls to such functions are rewritten accordingly.
	* exp_ch6.adb (Expand_N_Subprogram_Declaration): When
	Modify_Tree_For_C is set and the function returns a constrained
	array type, generate a procedure declaration with an additional
	out parameter. Mark original function as Rewritten_For_C.
	The new declaration is inserted in tree immediately after
	current declaration.
	(Expand_Subprogram_Body): If entity is marked Rewritten_For_C,
	generate body of corresponding procedure using declarations
	and statements for function body. Replace return statements
	with assignments to the out parameter, followed by a simple
	return statement.
	(Rewrite_Function_Call_For_C): New procedure to replace a function
	call that returns an array by a procedure call.

From-SVN: r229241
2015-10-23 14:28:53 +02:00
Arnaud Charlet faaf6d3538 Adjust previous change.
From-SVN: r229232
2015-10-23 12:51:06 +02:00
Arnaud Charlet 265ca04aba [multiple changes]
2015-10-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_dim.adb (Analyze_Dimension_Extension_Or_Record_Aggregate):
	Handle properly a box-initialized aggregate component.

2015-10-23  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Reject Volatile_Function not placed
	on a function.

2015-10-23  Yannick Moy  <moy@adacore.com>

	* a-extiin.ads, a-reatim.ads, a-interr.ads, a-exetim-mingw.ads,
	a-exetim-default.ads, a-exetim.ads, a-taside.ads: Add "Global => null"
	contract on subprograms.
	* lib-xref-spark_specific.adb: collect scopes for stubs of
	protected objects

2015-10-23  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Enable
	Back_Annotate_Rep_Info to get size information from gigi.
	(Gnat1drv): Code clean ups.
	* frontend.adb (Frontend): Ditto.

From-SVN: r229231
2015-10-23 12:49:44 +02:00
Arnaud Charlet 45969c973f gnat1drv.adb (Adjust_Global_Switches): Adjust settings.
2015-10-23  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Adjust settings.
	* sem.adb (Semantics): Remove special case.

From-SVN: r229230
2015-10-23 12:46:27 +02:00
Hristian Kirtchev 6e84098973 exp_ch7.adb (Process_Transient_Objects): Reimplement to properly handle restriction No_Exception_Propagation.
2015-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Process_Transient_Objects): Reimplement to properly
	handle restriction No_Exception_Propagation.
	* exp_ch11.adb (Expand_At_End_Handler): Update the parameter
	profile and all references to Block.
	* exp_ch11.ads (Expand_At_End_Handler): Update the parameter
	profile and comment on usage.
	* exp_intr.adb (Expand_Unc_Deallocation): Reimplement to properly
	handle restriction No_Exception_Propagation.
	* gnat1drv.adb, restrict.adb: Update comment.

From-SVN: r229227
2015-10-23 12:43:30 +02:00
Arnaud Charlet 0489576ce8 [multiple changes]
2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Check_Usage): Update the calls to Usage_Error.
	(Usage_Error): Remove formal parameter Item. Emit a clearer message
	concerning a missing dependency item and place it on the related pragma.

2015-10-20  Bob Duff  <duff@adacore.com>

	* debug.adb, expander.adb: Implement -gnatd.B switch, which
	triggers a bug box when an abort_statement is seen. This is
	useful for testing Comperr.Compiler_Abort.
	* gnat1drv.adb: Trigger bug box on all exceptions other than
	Unrecoverable_Error.

From-SVN: r229032
2015-10-20 11:55:20 +02:00
Arnaud Charlet 535a86378e exp_ch5.adb, [...]: Code clean up: remove special handling for .NET and JVM.
2015-10-16  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch5.adb, sem_ch3.adb, frontend.adb, exp_ch7.adb, exp_ch7.ads,
	sem_ch5.adb, sem_type.adb, exp_util.adb, exp_util.ads, comperr.adb,
	exp_attr.adb, sinfo.ads, exp_ch9.adb, make.adb, usage.adb,
	lib-writ.adb, sem_ch9.adb, bindgen.adb, debug.adb, einfo.adb,
	einfo.ads, types.ads, checks.adb, sem_prag.adb, s-tasini.adb,
	rtsfind.ads, freeze.adb, sem_util.adb, sem_util.ads, exp_dbug.adb,
	gnatlink.adb, gnat1drv.adb, targparm.adb, targparm.ads, exp_ch4.adb,
	exp_ch11.adb, repinfo.adb, s-soflin.adb, s-soflin.ads, exp_ch6.adb,
	exp_ch13.adb, sem_mech.adb, sem_ch6.adb, par-prag.adb, exp_disp.adb,
	sem_ch8.adb, exp_disp.ads, snames.adb-tmpl, exp_aggr.adb, sem_eval.adb,
	exp_intr.adb, sem_ch13.adb, snames.ads-tmpl, sem_disp.adb, exp_ch3.adb:
	Code clean up: remove special handling for .NET and JVM.

From-SVN: r228874
2015-10-16 13:01:53 +02:00
Arnaud Charlet b68cf874f6 [multiple changes]
2015-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_aux.adb, sem_aux.ads, exp_ch6.adb, sprint.adb:
	Minor reformatting.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

	* gnat1drv.adb, targparm.adb, targparm.ads, restrict.adb: Minor
	reformatting and typo fixes in comments.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Swap_Private_Dependets): Set visibility of
	the two views of a private dependent in two separate steps,
	to ensure proper visibility in parent units analyzed for inlining.

From-SVN: r223682
2015-05-26 12:42:26 +02:00
Arnaud Charlet 596b25f9a1 [multiple changes]
2015-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Defend against
	bad bounds.
	* debug.adb: Document -gnatd.k.
	* erroutc.adb (Set_Msg_Insertion_Line_Number): Implement -gnatd.k.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb (Gnat1drv): Provide new arguments for
	Get_Target_Parameters.
	* restrict.adb (Set_Restriction_No_Specification_Of_Aspect):
	new procedure.
	(Set_Restriction_No_Use_Of_Attribute): new procedure.
	* restrict.ads (Set_Restriction_No_Specification_Of_Aspect):
	new procedure.
	(Set_Restriction_No_Use_Of_Attribute): new procedure.
	* s-rident.ads (Integer_Parameter_Restrictions): New subtype.
	* targparm.adb (Get_Target_Parameters): Allow new restriction
	pragmas No_Specification_Of_Aspect No_Use_Of_Attribute
	No_Use_Of_Pragma.
	* targparm.ads: New parameters for Get_Target_Parameters.
	* tbuild.adb (Set_NOD): New name for Set_RND.
	(Set_NSA): New procedure.
	(Set_NUA): New procedure.
	(Set_NUP): New procedure.
	* tbuild.ads (Make_SC): Minor reformatting.
	(Set_NOD): New name for Set_RND.
	(Set_NSA, Set_NUA, Set_NUP): New procedure.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* a-stwise.adb (Find_Token): If source'first is not positive,
	an exception must be raised, as specified by RM 2005 A.4.3
	(68/1). This must be checked explicitly, given that run-time
	files are normally compiled without constraint checks.
	* a-stzsea.adb (Find_Token): Ditto.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.ads sem_util.adb (Is_Current_Instance):  New predicate
	to fully implement RM 8.6 (17/3). which earlier only applied
	to synchronized types. Used to preanalyze aspects that include
	current instances of types, such as Predicate and Invariant.
	* sem_res.adb (Resolve_Entity_Name): Use Is_Current_Instance.
	* sem_ch13.adb (Add_Predicates): In ASIS mode, preserve original
	expression of aspect and analyze it to provide proper type
	information.

2015-05-26  Robert Dewar  <dewar@adacore.com>

	* rtsfind.ads: Add entries for RE_Exn[_Long]_Float.
	* s-exnllf.adb (Exn_Float): New function.
	(Exn_Long_Float): New function.
	(Exn_Long_Long_Float): Rewritten interface.
	(Exp): New name for what used to be Exn_Long_Long_Float.
	* s-exnllf.ads (Exn_Float): New function.
	(Exn_Long_Float): New function.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Selected_Component): Do not emit an error
	on a selected component when the prefix is a type name that is
	a Current_Instance.
	* einfo.ads: Minor grammar fix.

2015-05-26  Doug Rupp  <rupp@adacore.com>

	* init.c [vxworks] (sysLib.h): Only for x86.

From-SVN: r223678
2015-05-26 12:29:25 +02:00
Arnaud Charlet e8c84c8fc3 [multiple changes]
2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Install_Private_Declarations,
	Swap_Private_Dependents): Ensure that both views of the dependent
	subtype are immediately visible if we are within their scope. This
	may be needed when a procedure body is both the parent of an
	instantiated child unit, and is itself used to inline a local
	function.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

	* exp_prag.adb, gnat1drv.adb: Minor reformatting.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_N_Indexed_Component): In the circuit
	detecting exceptions to the rewriting, deal with implicit
	dereferences in the selected component case.

2015-05-26  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_One_Aspect): Do not
	require the expression of the Disable_Controlled aspect to be
	static in a generic template, because 'Enabled is not known
	until the instance.

2015-05-26  Doug Rupp  <rupp@adacore.com>

	* init-vxsim.c: New file for vxsim ZCX
	* sigtramp-vxworks-vxsim.c: Likewise.
	* sigtramp-vxworks.c: Factor out target dependent bits into ...
	* sigtramp-vxworks-target.inc: ... here.
	* sigtramp.h: Add vxsim zcx protos.
	* init.c [vxworks...] (sysLib.h): Include.
	(__gnat_map_signal): Make global.
	 [...i386] (__gnat_error_handler): Call __gnat_vxsim_error_handler if
	on vxsim.
	[...i386] (__gnat_install_handler): Test if on vxsim.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): For an element
	iterator over an array, if the component is aliased, the loop
	variable is aliased as well.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Actuals): For a function call with in-out
	parameters that is rewritten as an expression_with_actions,
	we preserve the original function call node for further use by
	the caller (typically Expand_Call). In the presence of validity
	checks, that function call, though it is labelled Analyzed to
	prevent an infinite recursion, may be rewritten as a temporary
	by Remove_Side_Effects.  Ensure that the caller has access to
	the original function call to continue expansion.
	* atree.ads: Minor typo in comment.

2015-05-26  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Check_Function_Writable_Actuals):
	Add missing support to check the violation of writable actuals
	in array aggregates that have a nonstatic range.

From-SVN: r223672
2015-05-26 11:28:14 +02:00
Arnaud Charlet 213999c233 gnat1drv.adb: Minor adjustments.
* gnat1drv.adb: Minor adjustments.
	(Adjust_Global_Switches): Disable some related flags in CodePeer mode.
	* sem_ch4.adb (Has_Arbitrary_Evaluation_Order,
	Stop_Subtree_Climbind): Code cleanup.
	* einfo.ads: Minor comment change.

From-SVN: r223669
2015-05-26 10:19:55 +02:00
Robert Dewar ed05b79007 debug.adb: Update documentation.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Update documentation.
	* einfo.ads, einfo.adb (Needs_Typedef): New flag
	* exp_unst.adb (Unnest_Subprogram): Mark AREC types as needing
	typedef's in C.
	* frontend.adb: Update comments.
	* gnat1drv.adb (Adjust_Global_Switches): Set all needed flags
	for -gnatd.V
	* opt.ads (Generate_C_Code): New switch.
	* osint-c.adb (Write_C_File_Info): Removed, not used
	(Write_H_File_Info): Removed, not used
	* osint-c.ads (Write_C_File_Info): Removed, not used
	(Write_H_File_Info): Removed, not used
	* osint.ads (Write_Info): Minor comment updates.
	(Output_FD): Moved from private part to public part of spec.
	* sem.adb (Semantics): Force expansion on if in Generate_C_Code
	mode.
	* atree.ads: minor typo in comment.
	* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
	Do not allow VFA on composite object with aliased component.

From-SVN: r223546
2015-05-22 12:50:19 +02:00
Robert Dewar c944345b5d sem_intr.adb: (Check_Shift): Diagnose bad modulus value.
2015-05-12  Robert Dewar  <dewar@adacore.com>

	* sem_intr.adb: (Check_Shift): Diagnose bad modulus value.

2015-05-12  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Default to suppressing
	Alignment_Checks on non-strict alignment machine.
	* sem_ch13.adb (Validate_Address_Clauses): Don't give
	compile-time alignment warnings if run time Alignment_Check
	is suppressed.

From-SVN: r223063
2015-05-12 14:42:48 +02:00
Robert Dewar 5a271a7f3a debug.adb: Document new debug flag -gnatd.1.
2015-03-02  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Document new debug flag -gnatd.1.
	* einfo.ads, einfo.adb (Has_Nested_Subprogram): New flag.
	(Has_Uplevel_Reference): New flag (Is_Static_Type): New flag.
	(Uplevel_Reference_Noted):New flag (Uplevel_References): New field.
	* elists.ads elists.adb (List_Length): New function.
	* exp_ch6.adb (Expand_N_Subprogram_Body): Call Unnest_Subprogram
	when appropriate (Process_Preconditions): Minor code
	reorganization and reformatting
	* exp_unst.ads, exp_unst.adb: New files.
	* gnat1drv.adb (Adjust_Global_Switches): Set
	Unnest_Subprogram_Mode if -gnatd.1
	* namet.ads, namet.adb (Name_Find_Str): New version of Name_Find with
	string argument.
	* opt.ads (Unnest_Subprogram_Mode): New flag.
	* par-ch3.adb (P_Identifier_Declarations): Fixes to -gnatd.2 handling.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set
	Has_Nested_Subprogram flag.
	* sem_ch8.adb (Find_Direct_Name): New calling sequence for
	Check_Nested_Access.
	(Find_Selected_Component): Minor comment addition.
	* sem_util.adb (Check_Nested_Access): New version for use with Exp_Unst.
	(Note_Possible_Modification): New calling sequence for
	Check_Nested_Access.
	* sem_util.ads (Check_Nested_Access): New version for use with Exp_Unst.
	* gcc-interface/Make-lang.in (GNAT1_OBJS): Add exp_unst.o

From-SVN: r221109
2015-03-02 12:03:29 +01:00
Arnaud Charlet 07aff4e355 [multiple changes]
2015-02-20  Yannick Moy  <moy@adacore.com>

	* sem_prag.ads: Minor typo in comment.

2015-02-20  Pascal Obry  <obry@adacore.com>

	* s-osprim-mingw.adb: Fix Get_Base_Time parameter mode.

2015-02-20  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Get_Directories.Add_Dir): Add a directory only
	if it exists.

2015-02-20  Robert Dewar  <dewar@adacore.com>

	* sem_eval.ads: Minor reformatting.

2015-02-20  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Size_Known): Do not set the packed size for
	independent type or component.
	(Freeze_Array_Type): Check for Independent[_Components] with packing
	or explicit component size clause.
	* gnat1drv.adb (Post_Compilation_Validation_Checks): Do the validation
	of independence pragmas only for non-GCC back-ends.
	* sem_ch13.adb (Initialize): Likewise for the initialization.
	* sem_prag.adb (Record_Independence_Check): New procedure to record an
	independence check in the table.
	(Analyze_Pragma): Use it throughout instead of doing it manually.
	* gcc-interface/decl.c (gnat_to_gnu_field): Add support for
	independent type or component.

2015-02-20  Thomas Quinot  <quinot@adacore.com>

	* adaint.c (__gnat_readdir): For Solaris, use 64 bit variants of
	struct direct and readdir. This is required for NFS filesystems
	mounted from servers that use 64-bit cookies.

2015-02-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Subprogram_Instantiaion): New subprogram
	Build_Subprogram_Renaming, to create renaming of subprogram
	instance in the the declaration of the wrapper package rather
	than in its body, so that it is available for analysis of aspects
	propagated from generic to instantiation.
	(Check_Mismatch): An actual for a formal package that is an
	incomplete type matches a formal type that is incomplete.
	(Instantiate_Package_Body): Move code that builds subprogram
	renaming to Analyze_Subprogram_Instantiation.
	(Instantiate_Type): The generated subtype is a limited view if
	the actual is a limited view.
	(Load_Parent_Of_Generic): Retrieve instance declaration from
	its new position within wrapper package.

2015-02-20  Arnaud Charlet  <charlet@adacore.com>

	* s-parame-vxworks.adb, s-os_lib.ads: Update comments.

2015-02-20  Robert Dewar  <dewar@adacore.com>

	* s-osinte-vxworks.ads (To_Timespec): Add comment about the
	issue of negative arguments.

From-SVN: r220850
2015-02-20 12:38:17 +01:00
Arnaud Charlet 6b66981a2f [multiple changes]
2015-02-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat1drv.adb: Minor consistency fix.

2015-02-20  Pascal Obry  <obry@adacore.com>

	* s-osprim-mingw.adb (Get_Base_Time): Properly release lock in all
	paths.

From-SVN: r220845
2015-02-20 10:55:51 +01:00
Arnaud Charlet 17ce1f52fe [multiple changes]
2015-02-20  Eric Botcazou  <ebotcazou@adacore.com>

	* sinfo.ads: Add comment.

2015-02-20  Olivier Hainque  <hainque@adacore.com>

	* opt.ads: Replace Opt.Suppress_All_Inlining by two separate
	flags controlling the actual FE inlining out of pragma Inline
	and pragma Inline_Always.
	* adabkend.adb (Scan_Compiler_Arguments): Set both flags to True
	on -fno-inline, which disables all inlining in compilers with
	an Ada back-end and without back-end inlining support.
	* back_end.adb (Scan_Back_End_Switches): Set the Inline related
	flag to True on -fno-inline and leave Inline_Always alone for
	gcc back-ends.
	* back_end.ads (Scan_Compiler_Arguments): Adjust spec wrt the
	names of the Opt flags it sets.
	* gnat1drv.adb (Adjust_Global_Switches): Remove test on
	Opt.Suppress_All_Inlining in the Back_End_Inlining computation.
	* sem_prag.adb (Make_Inline): Remove early return conditioned
	on Opt.Suppress_All_Inlining.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the flags to
	disable the calls to Build_Body_To_Inline otherwise triggered
	by pragma Inline or Inline_Always. This will prevent actual
	front-end inlining of the subprogram on calls.

From-SVN: r220842
2015-02-20 10:48:22 +01:00
Hristian Kirtchev 8636f52f7b 2015-01-07 Hristian Kirtchev <kirtchev@adacore.com>
* alloc.ads Alphabetize several declarations. Add constants
	Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment.
	* atree.adb Add with and use clauses for Opt.
	(Allocate_Initialize_Node): Mark a node as ignored Ghost
	if it is created in an ignored Ghost region.
	(Ekind_In): New variant.
	(Is_Ignored_Ghost_Node): New routine.
	(Set_Is_Ignored_Ghost_Node): New routine.
	* atree.adb Aplhabetize several subprograms declarations. Flag
	Spare0 is now known as Is_Ignored_Ghost_Node.
	(Ekind_In): New variant.
	(Is_Ignored_Ghost_Node): New routine.
	(Set_Is_Ignored_Ghost_Node): New routine.
	* einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code.
	(Contains_Ignored_Ghost_Code): New routine.
	(Set_Contains_Ignored_Ghost_Code): New routine.
	(Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity):
	It is now possible to set this property on an unanalyzed entity.
	(Write_Entity_Flags): Output the status of flag
	Contains_Ignored_Ghost_Code.
	* einfo.ads New attribute Contains_Ignored_Ghost_Code along with
	usage in nodes.
	(Contains_Ignored_Ghost_Code): New routine
	along with pragma Inline.
	(Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline.
	* exp_ch3.adb Add with and use clauses for Ghost.
	(Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit.
	Set the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* exp_ch7.adb (Process_Declarations): Do not process a context
	that invoves an ignored Ghost entity.
	* exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost
	construct that has been rewritten as a null statement.
	* exp_disp.adb Add with and use clauses for Ghost.
	(Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set
	the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity
	does not require any clean up. Add two missing cases that deal
	with block statements.
	* freeze.adb Add with and use clauses for Ghost.
	(Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit.
	Set the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* frontend.adb Add with and use clauses for Ghost. Remove any
	ignored Ghost code from all units that qualify.
	* ghost.adb New unit.
	* ghost.ads New unit.
	* gnat1drv.adb Add with clause for Ghost. Initialize and lock
	the table in package Ghost.
	* lib.ads: Alphabetize several subprogram declarations.
	* lib-xref.adb (Output_References): Do not generate reference
	information for ignored Ghost entities.
	* opt.ads Add new type Ghost_Mode_Type and new global variable
	Ghost_Mode.
	* rtsfind.adb (Load_RTU): Provide a clean environment when
	loading a runtime unit.
	* sem.adb (Analyze): Capture/restore the value of Ghost_Mode on
	entry/exit as the node may set a different mode.
	(Do_Analyze):
	Capture/restore the value of Ghost_Mode on entry/exit as the
	unit may be withed from a unit with a different Ghost mode.
	* sem_ch3.adb Add with and use clauses for Ghost.
	(Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl,
	Analyze_Number_Declaration, Analyze_Private_Extension_Declaration,
	Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark
	the entity as Ghost when there is a Ghost_Mode in effect.
	(Array_Type_Declaration): The implicit base type inherits the
	"ghostness" from the array type.
	(Derive_Subprogram): The
	alias inherits the "ghostness" from the parent subprogram.
	(Make_Implicit_Base): The implicit base type inherits the
	"ghostness" from the parent type.
	* sem_ch5.adb Add with and use clauses for Ghost.
	(Analyze_Assignment): Set the Ghost_Mode in effect.
	* sem_ch6.adb Add with and use clauses for Ghost.
	(Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call,
	Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration):
	Set the Ghost_Mode in effect. Mark the entity as Ghost when
	there is a Ghost_Mode in effect.
	* sem_ch7.adb Add with and use clauses for Ghost.
	(Analyze_Package_Body_Helper, Analyze_Package_Declaration,
	Analyze_Private_Type_Declaration): Set the Ghost_Mode in
	effect. Mark the entity as Ghost when there is a Ghost_Mode
	in effect.
	* sem_ch8.adb Add with and use clauses for Ghost.
	(Analyze_Exception_Renaming, Analyze_Generic_Renaming,
	Analyze_Object_Renaming, Analyze_Package_Renaming,
	Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark
	the entity as Ghost when there is a Ghost_Mode in effect.
	(Find_Type): Check the Ghost context of a type.
	* sem_ch11.adb Add with and use clauses for Ghost.
	(Analyze_Exception_Declaration): Set the Ghost_Mode in
	effect. Mark the entity as Ghost when there is a Ghost_Mode
	in effect.
	* sem_ch12.adb Add with and use clauses for Ghost.
	(Analyze_Generic_Package_Declaration,
	Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect.
	Mark the entity as Ghost when there is a Ghost_Mode in effect.
	* sem_prag.adb Add with and use clauses for Ghost.
	(Analyze_Pragma): Ghost-related checks are triggered when there
	is a Ghost mode in effect.
	(Create_Abstract_State): Mark the
	entity as Ghost when there is a Ghost_Mode in effect.
	* sem_res.adb Add with and use clauses for Ghost.
	(Check_Ghost_Context): Removed.
	* sem_util.adb (Check_Ghost_Completion): Removed.
	(Check_Ghost_Derivation): Removed.
	(Incomplete_Or_Partial_View):
	Add a guard in case the entity has not been analyzed yet
	and does carry a scope.
	(Is_Declaration): New routine.
	(Is_Ghost_Entity): Removed.
	(Is_Ghost_Statement_Or_Pragma):
	Removed.
	(Is_Subject_To_Ghost): Removed.
	(Set_Is_Ghost_Entity):
	Removed.
	(Within_Ghost_Scope): Removed.
	* sem_util.adb (Check_Ghost_Completion): Removed.
	(Check_Ghost_Derivation): Removed.
	(Is_Declaration): New routine.
	(Is_Ghost_Entity): Removed.
	(Is_Ghost_Statement_Or_Pragma): Removed.
	(Is_Subject_To_Ghost): Removed.
	(Set_Is_Ghost_Entity): Removed.
	(Within_Ghost_Scope): Removed.
	* sinfo.ads Add a section on Ghost mode.
	* treepr.adb (Print_Header_Flag): New routine.
	(Print_Node_Header): Factor out code. Output flag
	Is_Ignored_Ghost_Node.
	* gcc-interface/Make-lang.in: Add dependency for unit Ghost.

From-SVN: r219280
2015-01-07 09:41:47 +01:00
Arnaud Charlet 0566484a15 [multiple changes]
2015-01-06  Pierre-Marie Derodat  <derodat@adacore.com>

	* scos.ads: Update documentation about the SCO table build
	process and about table records format.
	* par_sco.ads (SCO_Record): Rename to SCO_Record_Raw.
	(SCO_Record_Filtered): New procedure.
	(Set_SCO_Logical_Operator): New procedure.
	(dsco): Update documentation.
	* par_sco.adb: Update library-level comments.
	(SCO_Generation_State_Type): New type.
	(SCO_Generation_State): New variable.
	(SCO_Raw_Table): New package instanciation.
	(Condition_Pragma_Hash_Table): Rename to SCO_Raw_Hash_Table.
	("<"): New.
	(Tristate): New type.
	(Is_Logical_Operator): Return Tristate and update documentation.
	(Has_Decision): Update call to Is_Logical_Operator and complete
	documentation.
	(Set_Table_Entry): Rename to Set_Raw_Table_Entry, update
	comment, add an assertion for state checking and change
	references to SCO_Table into SCO_Raw_Table.
	(dsco): Refactor to dump the raw and the filtered tables.
	(Process_Decisions.Output_Decision_Operand): Handle putative
	short-circuit operators.
	(Process_Decisions.Output_Element): Update references
	to Set_Table_Entry and to Condition_Pragma_Hash_Table.
	(Process_Decisions.Process_Decision_Operand): Update call
	to Is_Logical_Operator.
	(Process_Decisions.Process_Node): Handle putative short-circuit
	operators and change references to
	SCO_Table into SCO_Raw_Table.
	(SCO_Output): Add an assertion
	for state checking and remove code that used to stamp out SCO entries.
	(SCO_Pragma_Disabled): Change reference to SCO_Table
	into SCO_Raw_Table.
	(SCO_Record): Rename to SCO_Record_Raw,
	add an assertion for state checking and change references
	to SCO_Table into SCO_Raw_Table.
	(Set_SCO_Condition): Add an assertion for state checking, update
	references to Condition_Pragma_Hash_Table and change references to
	SCO_Table into SCO_Raw_Table.
	(Set_SCO_Pragma_Enabled): Add an assertion for state checking and
	change references to SCO_Table into SCO_Raw_Table.
	(Set_SCO_Logical_Operator): New procedure.
	(Traverse_Declarations_Or_Statements.Set_Statement_Entry): Update
	references to Set_Table_Entry and to Condition_Pragma_Hash_Table.
	(SCO_Record_Fildered): New procedure.
	* gnat1drv.adb (Gnat1drv): Invoke the SCO filtering pass.
	* lib-writ.adb (Write_ALI): Invoke the SCO filtering pass and
	output SCOs.
	* par-load.adb (Load): Update reference to SCO_Record.
	* par.adb (Par): Update reference to SCO_Record.
	* put_scos.adb (Put_SCOs): Add an assertion to check that no
	putative SCO condition reaches this end.
	* sem_ch10.adb (Analyze_Proper_Body): Update reference to SCO_Record.
	* sem_res.adb (Resolve_Logical_Op): Validate putative SCOs
	when corresponding to an "and"/"or" operator affected by the
	Short_Circuit_And_Or pragma.

2015-01-06  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb (Analyze_Use_Package): Give more specific error
	msg for attempted USE of generic subprogram or subprogram.

From-SVN: r219234
2015-01-06 10:30:31 +01:00
Arnaud Charlet 72eaa36512 [multiple changes]
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* s-valllu.adb, a-tiinau.adb, a-timoau.adb, a-ztinau.adb, a-ztmoau.adb,
	s-valuns.adb, s-valrea.adb, a-wtflau.adb, a-tiflau.adb, a-ztflau.adb,
	a-wtinau.adb, a-wtmoau.adb: Document recognition of : in place of #.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
	that specify stream subprograms, if the prefix is a class-wide
	type then the generated attribute definition clause must apply
	to the same class-wide type.
	(Default_Iterator): An iterator defined by an aspect of some
	container type T must have a first parameter of type T, T'class,
	or an access to such (from code reading RM 5.5.1 (2/3)).

2015-01-06  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Minor: complete previous change.

2015-01-06  Olivier Hainque  <hainque@adacore.com>

	* set_targ.ads (C_Type_For): New function. Return the name of
	a C type supported by the back-end and suitable as a basis to
	construct the standard Ada floating point type identified by
	the T parameter. This is used as a common ground to feed both
	ttypes values and the GNAT tree nodes for the standard floating
	point types.
	* set_targ.adb (Long_Double_Index): The index at which "long
	double" gets registered in the FPT_Mode_Table. This is useful to
	know whether we have a "long double" available at all and get at
	it's characteristics without having to search the FPT_Mode_Table
	when we need to decide which C type should be used as the
	basis for Long_Long_Float in Ada.
	(Register_Float_Type): Fill Long_Double_Index.
	(FPT_Mode_Index_For): New function. Return the index in
	FPT_Mode_Table that designates the entry corresponding to the
	provided C type name.
	(FPT_Mode_Index_For): New function. Return the index in
	FPT_Mode_Table that designates the entry for a back-end type
	suitable as a basis to construct the standard Ada floating point
	type identified by the input T parameter.
	(elaboration code): Register_Back_End_Types unconditionally,
	so C_Type_For can operate regardless of -gnateT. Do it
	early so we can query it for the floating point sizes, via
	FPT_Mode_Index_For. Initialize Float_Size, Double_Size and
	Long_Double_Size from the FPT_Mode_Table, as cstand will do.
	* cstand.adb (Create_Float_Types): Use C_Type_For to determine
	which C type should be used as the basis for the construction
	of the Standard Ada floating point types.
	* get_targ.ads (Get_Float_Size, Get_Double_Size,
	Get_Long_Double_Size): Remove.
	* get_targ.adb: Likewise.

2015-01-06  Thomas Quinot  <quinot@adacore.com>

	* sem_cat.adb (In_RCI_Declaration): Remove unnecessary
	parameter and rename to...
	(In_RCI_Visible_Declarations): Fix handling of private part of nested
	package.
	(Validate_RCI_Subprogram_Declaration): Reject illegal function
	returning anonymous access in RCI unit.

From-SVN: r219233
2015-01-06 10:24:33 +01:00
Arnaud Charlet a921e83c12 [multiple changes]
2015-01-06  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb: Change name Name_Table_Boolean to
	Name_Table_Boolean1.
	* namet.adb: Change name Name_Table_Boolean to Name_Table_Boolean1
	Introduce Name_Table_Boolean2/3.
	* namet.ads: Change name Name_Table_Boolean to Name_Table_Boolean1
	Introduce Name_Table_Boolean2/3.
	* par-ch13.adb: Change name Name_Table_Boolean to
	Name_Table_Boolean1.

2015-01-06  Bob Duff  <duff@adacore.com>

	* gnat_rm.texi: Improve documentation regarding No_Task_Termination.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregte, Get_Value): For an
	others choice that covers multiple components, analyze each
	copy with the type of the component even in compile-only mode,
	to detect potential accessibility errors.

2015-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Is_Assignment_Or_Object_Expression): New routine.
	(Resolve_Actuals): An effectively volatile out
	parameter cannot act as an in or in out actual in a call.
	(Resolve_Entity_Name): An effectively volatile out parameter
	cannot be read.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
	the expansion of an expression function it may be pre-analyzed
	if a 'access attribute is applied to the function, in which case
	last_entity may have been assigned already.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_One_Call): If formal has an incomplete
	type and actual has the corresponding full view, there is no
	error, but a case of use of incomplete type in a predicate or
	invariant expression.

2015-01-06  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Insert_No_Roots): Make sure that the same source
	in two different project tree is checked in both trees, if they
	are sources of two different projects, extended or not.

2015-01-06  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb: Minor code clean up.
	(Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode.

2015-01-06  Bob Duff  <duff@adacore.com>

	* osint.adb (Read_Source_File): Don't print out
	file name unless T = Source.

2015-01-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Is_Variable, Is_OK_Variable_For_Out_Formal):
	recognize improper uses of constant_reference types as actuals
	for in-out parameters.
	(Check_Function_Call): Do not collect identifiers if function
	name is missing because of previous error.

From-SVN: r219231
2015-01-06 10:18:13 +01:00
Arnaud Charlet 596f71394d [multiple changes]
2014-11-20  Robert Dewar  <dewar@adacore.com>

	* s-tassta.adb, exp_aggr.adb, s-taskin.adb, exp_strm.adb: Minor
	reformatting.
	* comperr.adb (Compiler_Abort): New wording for bug box.
	* par-ch13.adb: Minor reformatting.
	* par-ch3.adb (P_Identifier_Declarations): Handle aspect
	specifications given before initialization expression in object
	declaration cleanly.
	* gnat1drv.adb (Adjust_Global_Switches): Make sure static
	elaboration mode is set if we are operating in SPARK mode.
	* sem_ch12.adb (Analyze_Package_Instantiation): Make
	sure static elab mode is set if we are in SPARK mode.
	(Analyze_Subprogram_Instantiation): ditto.
	(Set_Instance_Env): ditto.
	* sem_elab.adb (Check_A_Call): In SPARK mode, we require
	Elaborate_All in the case of a call during elaboration to a
	subprogram in another unit.

2014-11-20  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Can_Split_Unconstrained_Function,
	Build_Procedure): Copy parameter type rather than creating
	reference to the entity, to capture class-wide reference, whose
	name is not retrieved by visibility.

From-SVN: r217874
2014-11-20 16:17:47 +01:00
Arnaud Charlet 3c756b7632 [multiple changes]
2014-11-07  Arnaud Charlet  <charlet@adacore.com>

	* debug.adb, snames.adb-tmpl (Is_Keyword_Name): Consider 'overriding'
	a keyword in Ada 95 mode when -gnatd.D is used.
	* gnat_ugn.texi: Document -gnatd.D.

2014-11-07  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnatls.adb: Lower severity of the program's return value in
	some common cases.

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Decorate_Type): The limited view of a tagged
	type has an empty list of primitive operations.

2014-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Update references to SPARK
	RM.
	(Process_Full_View): Update references to SPARK RM.
	* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references
	to SPARK RM.
	(Analyze_Subprogram_Body_Helper): Update references
	to SPARK RM.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Update references
	to SPARK RM.
	* sem_prag.adb (Check_Ghost_Constituent): Update references to
	SPARK RM.
	* sem_res.adb (Check_Ghost_Policy): Update references to SPARK RM.
	(Resolve_Actuals): Ensure that the actual parameter of a Ghost
	subprogram whose formal is of mode IN OUT or OUT is Ghost.
	* sem_util.adb (Check_Ghost_Completion): Update references to
	SPARK RM.

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch7.adb (Make_Final_Call): If type of designated object is
	derived from that of the formal of the Deep_Finalize procedure,
	add an unchecked conversion to prevent spurious type error.

2014-11-07  Robert Dewar  <dewar@adacore.com>

	* table.adb, inline.adb, einfo.adb, gnat1drv.adb, exp_ch13.adb,
	exp_fixd.adb, prj-conf.adb, exp_strm.adb, a-cofove.adb, exp_ch3.ads:
	Minor reformatting.

2014-11-07  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb, sem_ch13.adb, prj-tree.adb: Minor reformatting.

From-SVN: r217227
2014-11-07 14:59:41 +01:00
Arnaud Charlet 715e529d70 [multiple changes]
2014-10-31  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Access_Attribute): Do not emit error
	message if reference does not come from source, as in the case
	for the controlling argument of a dispatching call. Error is
	diagnosed when call is resolved.
	* sem_ch4.adb (Complete_Object_Operation); Fix incorrect RM
	reference in error message.
	* sem_res.adb (Check_Prefixed_Call): ditto.

2014-10-31  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Do not
	suppress checks when pragma Restrictions (No_Exception) is used in
	CodePeer or GNATprove mode.

2014-10-31  Yannick Moy  <moy@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Explicitly mark language
	checks as not suppressed in GNATprove mode.

2014-10-31  Ed Schonberg  <schonberg@adacore.com>

	* sem_elab.adb (Check_Elab_Call): Nothing to check if call is
	being pre-analyzed.
	* sem_ch3.adb (Complete_Private_Subtype): If all rep items of full
	view are those of the base, use rep_item chain of partial view,
	which may include aspects.
	* sem_cat.adb (Is_non_Remote_Access_Type): Use underlying type
	of base type, to handle properly declared subtypes.

From-SVN: r216969
2014-10-31 12:43:09 +01:00
Arnaud Charlet b04d926e21 [multiple changes]
2014-10-23  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Pragma/Pragma_Inline & Pragma_Inline_Always):
	Disable analysis in GNATprove mode.

2014-10-23  Arnaud Charlet  <charlet@adacore.com>

	* mlib-prj.adb: Remove obsolete references to libdecgnat (VMS only).

2014-10-23  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Ignore style check
	pragmas in codepeer mode.

2014-10-23  Gary Dismukes  <dismukes@adacore.com>

	* gnat_rm.texi: Minor syntax fix for pragma Annotate (missing ',').

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch12.adb (Inline_Instance_Body): Alphabetize
	local variables and constants. Add constants Save_SM and Save_SMP
	to capture SPARK_Mode-related attributes.  Compile the inlined
	body with the SPARK_Mode of the enclosing context.

2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>

	* sinfo.adb (Elaboration_Boolean): Removed.
	(Set_Elaboration_Boolean): Removed.
	* sinfo.ads Remove attribute Elaboration_Boolean along with its
	occurrence in nodes.
	(Elaboration_Boolean): Removed along with pragma Inline.
	(Set_Elaboration_Boolean): Removed along with pragma Inline.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Constant_Redeclaration): Make error message more
	explicit on a deferred constant whose object_definition is an
	anonymous array.

2014-10-23  Vincent Celier  <celier@adacore.com>

	* gnatls.adb: Never call Targparm.Get_Target_Parameters.

2014-10-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function): In a generic
	context do not create a body, and only pre-analyze the expression,
	which may include incomplete views.

From-SVN: r216584
2014-10-23 12:19:58 +02:00