1. 20 Oct, 2015 40 commits
    • [multiple changes] · 744c73a5
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch11.adb (Analyze_Handled_Statements): If the scope is a
      	postcondition subprogram, do not check for useless assignments
      	because there are no source references in such a body, and the
      	call will lose deferred references from the enclosing subprogram.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb: nalyze_Attribute_Definition_Clause, case
      	'Address):  If either object is controlled the overlay is
      	erroneous, but analysis must be completed so that back-end sees
      	address clause and completes code generation.  Improve text
      	of warning.
      
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch4.adb: Minor reformatting.
      
      From-SVN: r229072
      Arnaud Charlet committed
    • [multiple changes] · 9fe696a3
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* s-mudido-affinity.adb (Create): Correct subranges of slices of CPU
      	arrays.
      
      2015-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* sinfo.ads, g-pehage.adb, par-ch12.adb,
      	layout.adb, exp_util.adb, sem_aux.adb, make.adb, checks.adb,
      	sem_ch12.adb, sem_res.adb, sem_attr.adb, a-ngelfu.adb, sem_ch4.adb,
      	switch-b.adb, sem_ch6.adb, prj-dect.adb, gnatxref.adb, sem_ch13.adb,
      	lib-xref.adb: Fix typos.
      
      2015-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch4.adb (Expand_Array_Comparison): Use
      	generic code if runtime routine is not available.
      
      From-SVN: r229071
      Arnaud Charlet committed
    • [multiple changes] · 635ffc52
      2015-10-20  Yannick Moy  <moy@adacore.com>
      
      	* a-sytaco.ads (Ada.Synchronous_Task_Control): Package
      	now withs System.Task_Identification. The visible part
      	of the spec has SPARK_Mode. The private part has pragma
      	SPARK_Mode (Off).
      	(Set_True): Added Global and Depends aspects
      	(Set_False): Added Global and Depends aspects (Current_State):
      	Added Volatile_Function aspect and added external state
      	Ada.Task_Identification.Tasking_State as a Global input.
      	(Suspend_Until_True): Added Global and Depends aspects
      	* a-sytaco.adb (Ada.Synchronous_Task_Control):
      	Package body has SPARK_Mode => Off
      	* a-extiin.ads (Ada.Execution_Time.Interrupts):
      	Package now withs Ada.Real_Time and has SPARK_Mode.
      	(Clock): Added Volatile_Function aspect and added external state
      	Ada.Real_Time.Clock_Time as a Global input.
      	* a-reatim.ads (Ada.Real_Time): The visible part of the spec has
      	SPARK_Mode. The private part has pragma SPARK_Mode (Off). The package
      	declares external state Clock_Time with properties Async_Readers and
      	Async_Writers.
      	(Clock): Added Volatile_Function aspect and
      	added external state Clock_Time as a Global input.
      	* a-reatim.adb (Ada.Real_Time): Package body has SPARK_Mode => Off
      	* a-exetim-default.ads, a-exetim-mingw.ads (Ada.Execution_Time):
      	The visible part of the spec has SPARK_Mode. The private part
      	has pragma SPARK_Mode (Off).
      	(Clock): Added Volatile_Function
      	aspect and added external state Clock_Time as a Global input.
      	(Clock_For_Interrupts): Added Volatile_Function aspect and added
      	external state Ada.Real_Time.Clock_Time as a Global input.
      	* a-exetim-mingw.adb (Ada.Execution_Time): Package body has
      	SPARK_Mode => Off
      	* a-interr.ads (Ada.Interrupts): Package now
      	withs Ada.Task_Identification (Is_Reserved): Added
      	SPARK_Mode, Volatile_Function and external state
      	Ada.Task_Identification.Tasking_State as a Global input.
      	(Is_Attached): Added SPARK_Mode, Volatile_Function and external
      	state Ada.Task_Identification.Tasking_State as a Global input.
      	(Attach_Handler): Added SPARK_Mode => Off (Exchange_Handler):
      	Added SPARK_Mode => Off (Detach_Handler): Added SPARK_Mode
      	and external state Ada.Task_Identification.Tasking_State as a
      	Global In_Out.	(Reference): Added SPARK_Mode => Off
      	* a-disedf.ads (Get_Deadline): Added SPARK_Mode, Volatile_Function
      	and external state Ada.Task_Identification.Tasking_State as a
      	Global input.
      	* a-taside.ads (Ada.Task_Identification): The visible part of
      	the spec has SPARK_Mode.  The private part has pragma SPARK_Mode
      	(Off). The package declares external state Tasking_State with
      	properties Async_Readers and Async_Writers.
      	(Current_Task): Added
      	Volatile_Function aspect and added external state Tasking_State
      	as a Global input.
      	(Environment_Task): Added SPARK_Mode => Off
      	(Is_Terminated): Added Volatile_Function aspect and added external
      	state Tasking_State as a Global input.	(Is_Callable): Added
      	Volatile_Function aspect and added external state Tasking_State as
      	a Global input.
      	(Activation_Is_Complete): Added Volatile_Function
      	aspect and added external state Tasking_State as a Global input.
      	* a-taside.adb (Ada.Task_Identification): Package body has
      	SPARK_Mode => Off.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* atree.ads, atree.adb: Enable List38 and List39 on entities.
      	* einfo.ads, einfo.adb (Class_Wide_Preconds) new attribute defined
      	on subprograms. Holds the list of class-wide precondition
      	functions inherited from ancestors. Each such function is an
      	instantiation of the generic function generated from an explicit
      	aspect specification for a class-wide precondition. A type is
      	an ancestor of itself, and therefore a root type has such an
      	instance on its own list.
      	(Class_Wide_Postconds): ditto for postconditions.
      
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* prj-attr.adb: Add packages Prove and GnatTest.
      
      2015-10-20  Steve Baird  <baird@adacore.com>
      
      	* a-conhel.adb: Add an Annotate pragma to help suppress CodePeer's
      	analysis of internals of container generic instances. This pragma
      	has no other effect.
      	* a-conhel.adb (Generic_Implementation) Add "pragma Annotate
      	(CodePeer, Skip_Analysis);".
      
      From-SVN: r229070
      Arnaud Charlet committed
    • [multiple changes] · fb159eb7
      2015-10-20  Steve Baird  <baird@adacore.com>
      
      	* pprint.adb: Code clean up.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-cfinve.ads, a-coboho.ads: Improve comments.
      	* a-coboho.adb (Size_In_Storage_Elements): Improve error message
      	in case of "Size is too big" exception.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-contai.ads: Remove check names (moved to snames.ads-tmpl).
      	* snames.ads-tmpl: Add check names that were previously in
      	a-contai.ads, so they are now visible in configuration files.
      	* types.ads: Add checks corresponding to snames.ads-tmpl.
      
      From-SVN: r229069
      Arnaud Charlet committed
    • [multiple changes] · 78cef47f
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Loop_Statement): Attach generated loop
      	identifier to the tree, because it may be the root of a tree
      	traversal in Pop_Scope when freeze actions are pending.
      
      2015-10-20  Steve Baird  <baird@adacore.com>
      
      	* pprint.ads (Expression_Image) Add new generic formal flag
      	Hide_Parameter_Blocks.
      	* pprint.adb (Expression_Image) If new flag is set, then display
      	dereferences of parameter block components accordingly.
      
      From-SVN: r229068
      Arnaud Charlet committed
    • [multiple changes] · e5f2c03c
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb: Code clean up.
      
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Code cleanup.
      	(Make_Build_In_Place_Call_In_Object_Declaration): Update the
      	parameter profile.  Code cleanup. Request debug info for the
      	object renaming declaration.
      	(Move_Activation_Chain): Add new formal parameter and update the
      	comment on usage.
      	* exp_ch6.ads (Make_Build_In_Place_Call_In_Object_Declaration):
      	Update the parameter profile and comment on usage.
      	* sem_util.ads, sem_util.adb (Remove_Overloaded_Entity): New routine,
      	currently unused.
      
      From-SVN: r229067
      Arnaud Charlet committed
    • sem_ch13.adb (Analyze_One_Aspect, [...]): If expander is not active... · 58ef3d30
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_One_Aspect, case
      	Aspect_Disable_Controlled): If expander is not active, pre-analyze
      	expression anyway for ASIS and other tools use.
      	* sem_prag.adb (Build_Generic_Class_Condition): Handle properly
      	anonymous access types in parameter specifications. Make the
      	formal type a formal derived type of the controlling type of
      	the subprogram.
      
      From-SVN: r229064
      Ed Schonberg committed
    • s-rident.ads: No_Task_At_Interrupt_Priority: New restriction. · 6bf8c157
      2015-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* s-rident.ads: No_Task_At_Interrupt_Priority: New restriction.
      	* sem_prag.adb (Analyze_Pragma): Check the restriction.
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause):
      	Check the restriction (for aspects).
      
      From-SVN: r229063
      Tristan Gingold committed
    • sem_prag.adb: Minor reformatting. · da160026
      2015-10-20  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_prag.adb: Minor reformatting.
      
      From-SVN: r229061
      Gary Dismukes committed
    • [multiple changes] · a015ef67
      2015-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* sem_util.adb (Is_Protected_Self_Reference): Remove reference to
      	UET_Address in comment.
      	* sem_attr.adb (Check_Unit_Name): Adjust comment.
      	(Analyze_Attribute): Remove handling of UET_Address.
      	* sem_attr.ads (Attribute_Impl_Def): Remove Attribute_UET_Address.
      	* snames.ads-tmpl Remove Name_UET_Address, Attribute_UET_Address.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Remove
      	Attribute_UET_Address.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-cbdlli.adb, a-cdlili.adb, a-chtgop.adb, a-cidlli.adb,
      	* a-cobove.adb, a-coinve.adb, a-convec.adb, a-crbtgo.adb ("="): Avoid
      	modifying the tampering counts unnecessarily.
      	(Adjust): Zero tampering counts unconditionally.
      
      2015-10-20  Jerome Lambourg  <lambourg@adacore.com>
      
      	* init.c: Fix build issue on arm-vx6 when building the RTP
      	run-time.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Object_Declaration): If the expression
      	is an aggregate and compilation is in -gnatI mode (ignore rep
      	clauses) do not delay resolution of aggregate, to prevent freeze
      	actions out of order in the backend.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.ads, sem_prag.adb (Build_Generic_Class_Condition):
      	New procedure to construct a generic function for a class-wide
      	precondition, to implement AI12-0113  concerning the new semantics
      	of class-wide preconditions for overriding uperations.
      
      From-SVN: r229060
      Arnaud Charlet committed
    • [multiple changes] · c386239f
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Find_Actual): The routine is
      	now capable of operating on entry calls.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb: Remove redundant check.
      
      From-SVN: r229059
      Arnaud Charlet committed
    • [multiple changes] · c96c518f
      2015-10-20  Jerome Lambourg  <lambourg@adacore.com>
      
      	* init.c (__gnat_vxsim_error_handler): Completely disable on
      	VxWorks-7 as the VSBs used to build gcc do not support vxsim
      	architecture.
      
      2015-10-20  Claire Dross  <dross@adacore.com>
      
      	* a-cfdlli.ads, a-cfinve.ads, a-cofove.ads (Generic_Sorting): Explicit
      	SPARK_Mode.
      	* a-cfhase.ads, a-cforse.ads (Generic_Keys): Explicit SPARK_Mode.
      
      2015-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch9.adb (Expand_N_Protected_Type_Declaration):
      	Check for No_Implicit_Protected_Object_Allocations.
      	* fe.h (Check_No_Implicit_Task_Alloc,
      	Check_No_Implicit_Protected_Alloc): Define and declare.
      	* restrict.ads, restrict.adb (Check_No_Implicit_Task_Alloc,
      	Check_No_Implicit_Protected_Alloc): New procedures to check the
      	restrictions.
      	* s-rident.ads (No_Implicit_Task_Allocations)
      	(No_Implicit_Protected_Object_Allocations): Declare new
      	restrictions.
      
      2015-10-20  Yannick Moy  <moy@adacore.com>
      
      	* sem_res.adb (Resolve_Selected_Component): Only set flag
      	when component is defined in a variant part.
      	* sem_util.adb,
      	* sem_util.ads (Is_Declared_Within_Variant): Promote local query
      	as publicy visible one for use in Resolve_Selected_Component.
      
      2015-10-20  Philippe Gil  <gil@adacore.com>
      
      	* g-debpoo.adb: allow instrumented System.Memory to use Debug_Pool
      	from foreign threads.
      	* g-debpoo.adb (Print_Traceback): NEW print traceback if available
      	added to support Stack_Trace_Depth = 0.
      	(Print_Address): NEW print System.Address without no secondary
      	stack use (Address_Image uses secondary stack)
      
      From-SVN: r229058
      Arnaud Charlet committed
    • [multiple changes] · 03a72cd3
      2015-10-20  Yannick Moy  <moy@adacore.com>
      
      	* exp_ch9.adb (Expand_Entry_Barrier): Default initialize local variable
      	Func.
      
      2015-10-20  Jerome Lambourg  <lambourg@adacore.com>
      
      	* init.c (__gnat_error_handler for vxworks): Force
      	SPE bit in the MSR when handling signals
      
      2015-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* einfo.ads, sem_ch12.adb, sem_ch6.adb, table.ads, s-stposu.ads,
      	g-table.ads, g-dyntab.ads, makeutl.ads, a-crdlli.ads: Fix typos.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Loop_Statement): Element iterators
      	over multidimensional arrays create additional loops during
      	expansion. For such loops we create a label as a scope
      	name. Attach this label  properly to tree, for use in GNATProve
      	over such element iterators.
      	* sem_attr.adb (Analyze_Attribute, case Loop_Entry): The loop to
      	which the attribute applies comes from source, not from expansion
      	of an element iterator or a quantified expression.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Ditto.
      
      From-SVN: r229057
      Arnaud Charlet committed
    • [multiple changes] · fc90cc62
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_Call): Check for a call to a function
      	declared in a Dimension I/O package, to handle the new Image
      	function.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* inline.ads: Minor comment fixes.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-comutr.ads (Tree_Node_Access): Add No_Strict_Aliasing, because
      	we're doing unchecked conversions with this pointer.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch9.adb (Next_Protected_Operation): An expression function
      	used as a completion can be the next protected operation in a
      	protected body.
      
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Is_OK_Volatile_Context): Add a guard when checking a
      	possible call to an instance of Ada.Unchecked_Conversion to avoid
      	testing protected function calls. Allow references to protected objects
      	in prefixed protected calls.
      	(Is_Protected_Operation_Call): New routine.
      
      2015-10-20  Yannick Moy  <moy@adacore.com>
      
      	* exp_ch5.adb, exp_ch5.ads (Expand_Iterator_Loop_Over_Array): Make
      	query public. Remove code handling with iterator loop over array
      	of the 'in' form, which is not allowed in Ada.	* exp_spark.adb
      	(Expand_SPARK): Expand loop statements that take the form of an
      	iterator over an array.
      	* sem_ch5.adb (Analyze_Loop_Statement): Do not analyze loop statements
      	that take the form of an iterator over an array, so that the rewritten
      	form gets analyzed instead.
      	* sem_util.adb, sem_util.ads (Is_Iterator_Over_Array): New query
      	to recognize iterators over arrays.
      
      2015-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-excdeb.ads, s-excdeb.adb (Debug_Raise_Exception): Add
      	parameter Message.
      	* a-except.adb (Raise_Current_Excep): Update call to
      	Debug_Raise_Exception.
      	* a-except-2005.adb (Complete_Occurrence): Ditto.
      	* sem_ch12.adb: Whitespace fix.
      
      From-SVN: r229056
      Arnaud Charlet committed
    • Correctly fill up cgraph_node::local.versionable flag. · 7e729474
      	* cgraphclones.c (cgraph_node::create_virtual_clone):
      	Verify cgraph_node.local.versionable instead of calling
      	tree_versionable_function_p.
      	* ipa-cp.c (determine_versionability): Save the information
      	to ipa_node_params summary.
      	(ipcp_versionable_function_p): Use it.
      	(ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
      	(ipcp_generate_summary): Do not compute cgraph_node
      	versionability.
      	* ipa-inline-analysis.c (inline_generate_summary): Compute
      	versionability for all cgraph nodes.
      	* ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
      	ipa_node_params::versionability.
      	* ipa-prop.h (struct ipa_node_params): Declare it.
      
      From-SVN: r229055
      Martin Liska committed
    • Fix typos. · 5f0a92e5
      From-SVN: r229054
      Arnaud Charlet committed
    • [multiple changes] · 319c6161
      2015-10-20  Yannick Moy  <moy@adacore.com>
      
      	* sem_warn.adb (Is_OK_Fully_Initialized): Consider types with DIC as
      	fully default initialized.
      	* sem_ch6.adb: minor style fix in comment
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* s-diflio.ads, s-diflio.adb (Image): New function for dimensioned
      	quantities, to produce a string that includes the dimension
      	synbol for the quantity, or the vector of dimensions in standard
      	notation.
      	* sem_dim.adb (Expand_Put_Call_With_Symbol): Process new function
      	Image, to include dimension information in the generated string,
      	identical to the string produced by the Put procedure on a string
      	for a dimensioned quantity.
      
      From-SVN: r229053
      Arnaud Charlet committed
    • [multiple changes] · d29f68cf
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Process_Declarations): A loop
      	parameter does not require finalization actions.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_ch6.adb (Expand_Simple_Function_Return): Do not create an
      	actual subtype for a mutable record return type if the expression
      	is itself a function call.
      
      2015-10-20  Dmitriy Anisimkov  <anisimko@adacore.com>
      
      	* s-atocou.adb, s-atocou-builtin.adb: Fix implementation description
      	related to new type support.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Explicit_Dererence): Call Analyze_Dimension
      	to propagate dimension information from prefix.
      	* sem_dim.adb (Analyze_Dimension): Handle Explicit_Dereference.
      	* inline.ads: minor whitespace fix in comment
      	* sem_ch6.adb: minor gramar fix in comment
      
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb (Analyze_Object_Contract):
      	A protected type or a protected object is allowed to have a
      	discriminated part.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* sem_util.adb (Requires_Transient_Scope):
      	Return true for mutable records if the maximum size is very large.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* a-except-2005.adb (To_Stderr): Import Put_Char_Stderr with
      	the same signature as in System.IO.Put.
      
      From-SVN: r229052
      Arnaud Charlet committed
    • [multiple changes] · b54d1d39
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-cobove.adb (Set_Length): Restore previous logic, but with "Checks
      	and then" on the check.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* par-ch3.adb (P_Known_Discriminant_Part_Opt): Handle properly
      	a misplaced "constant" keyword in a discriminant specification.
      
      2015-10-20  Steve Baird  <baird@adacore.com>
      
      	* einfo.ads (Is_Param_Block_Component_Type): New function decl
      	for querying the flag.
      	(Set_Is_Param_Block_Component_Type): New procedure decl for setting
      	the flag.
      	* einfo.adb (Is_Param_Block_Component_Type): New function body.
      	(Set_Is_Param_Block_Component_Type): New procedure body.
      	(Write_Entity_Flags): Display the new flag.
      	* exp_ch9.adb (Build_Parameter_Block): Set flag on parameter
      	block component types.
      	(Expand_N_Entry_Declaration): Set flag on parameter block component
      	types.
      
      2015-10-20  Steve Baird  <baird@adacore.com>
      
      	* sem_elab.adb: Do not pass an N_Attribute_Reference node to
      	Sinfo.Set_No_Elaboration_Check.
      	* sem_elab.adb (Check_Elab_Call) Do not pass a non-call
      	node (specifically, an N_Attribute_Reference node) to
      	Sinfo.Set_No_Elaboration_Check.
      
      2015-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* adaint.c: File names are case sensitive on aarch64-ios.
      
      From-SVN: r229051
      Arnaud Charlet committed
    • [multiple changes] · 1f8f3e6e
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-cbdlli.ads, a-cbhase.ads, a-cbmutr.ads, a-cborse.ads,
      	* a-cdlili.ads, a-cidlli.ads, a-cihase.ads, a-cimutr.ads,
      	* a-ciorse.ads, a-cobove.ads, a-cohase.ads, a-coinve.ads,
      	* a-comutr.ads, a-convec.ads, a-coorse.ads: Use non-private with clause.
      
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Requires_Cleanup_Actions): A loop parameter does not
      	require finalization actions.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* par-ch3.adb (P_Declarative_Items): In case of misplaced
      	aspect specifications, ensure that flag Done is properly set to
      	continue parse.
      
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* rtsfind.ads Remove the entries for Ada.Synchronous_Task_Control
      	and Suspension_Object from tables RE_Id, RE_Unit_Table and RTU_Id.
      	* sem_util.adb (Is_Descendant_Of_Suspension_Object): Update
      	the comment on usage. Use routine Is_Suspension_Object to detect
      	whether a type matches Suspension_Object.
      	(Is_Suspension_Object): New routine.
      	* snames.ads-tmpl: Add predefined names for Suspension_Object
      	and Synchronous_Task_Control.
      
      From-SVN: r229049
      Arnaud Charlet committed
    • [multiple changes] · cbc61965
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_smem.adb (Check_Shared_Var): Clean up code that handles
      	type declarations with discriminants, remove obsolete check.
      
      2015-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* par_sco.adb: Minor style fixes.
      
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* debug.adb: Update documentation of -gnatdu.
      
      From-SVN: r229048
      Arnaud Charlet committed
    • 2015-10-20 Hristian Kirtchev <kirtchev@adacore.com> · 847d950d
      	* aspects.adb Add aspect Volatile_Function to table
      	Canonical_Aspect.
      	* aspect.ads Add aspect Volatile_Function to tables
      	Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names
      	and Implementation_Defined_Aspect.  Aspects Async_Readers,
      	Async_Writers, Effective_Reads and Effective_Writes are no
      	longer Boolean.
      	* einfo.adb (Get_Pragma): Add an entry for pragma
      	Volatile_Function.
      	* par-prag.adb (Prag): Pragma Volatile_Function does not need
      	special processing by the parser.
      	* rtsfind.ads Add an entry for Ada.Synchronous_Task_Control in
      	table RTU_Id. Add an entry for Suspension_Object in table RE_Id.
      	* sem_ch3.adb Fix SPARK RM references.
      	(Analyze_Object_Contract): Update the error guard.
      	* sem_ch5.adb Fix SPARK RM references.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Ensure
      	that a non-volatile function does not contain an effectively
      	volatile parameter.
      	(Analyze_Subprogram_Contract): Ensure
      	that a non-volatile function does not contain an effectively
      	volatile parameter.
      	* sem_ch12.adb (Instantiate_Object): Remove the reference to
      	the SPARK RM from the error message.
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Add
      	processing for aspects Async_Readers, Async_Writers,
      	Effective_Reads, Effective_Writes and Volatile_Function.
      	(Check_Aspect_At_Freeze_Point): Aspects Async_Readers,
      	Async_Writers, Effective_Reads, Effective_Writes and
      	Volatile_Function do not need special processing at the freeze
      	point.
      	* sem_prag.adb Add an entry for pragma Volatile_Function in
      	table Sig_Flags.
      	(Analyze_External_Property_In_Decl_Part):
      	Reimplemented as Async_Readers, Async_Writers, Effective_Reads
      	and Effective_Writes are no longer Boolean pragmas.
      	(Analyze_Global_Item): An external state or effectively
      	volatile object cannot appear as an item in pragma
      	[Refined_]Global.
      	(Analyze_Pragma): Change the implementation
      	of Async_Readers, Async_Writers, Effective_Reads and
      	Effective_Writes as these are no longer Boolean pragmas.
      	Use routine Check_Static_Boolean_Expression to verify the
      	optional Boolean expression of Async_Readers, Async_Writers,
      	Constant_After_Elaboration, Effective_Reads, Effective_Writes,
      	Extensions_Visible and Volatile_Function.  Add processing for
      	pragma Volatile_Function.
      	(Check_Static_Boolean_Expression): New routine.
      	(Find_Related_Context): Update the comment on usage.
      	(Is_Enabled_Pragma): New routine.
      	* sem_prag.ads (Is_Enabled_Pragma): New routine.
      	* sem_res.adb Fix SPARK RM references.
      	(Is_OK_Volatile_Context): Add detection for return statements.
      	(Resolve_Actuals): Remove the check concerning an effectively volatile
      	OUT actual parameter as this is now done by the SPARK flow analyzer.
      	(Resolve_Entity_Name): Remove the check concerning an effectively
      	volatile OUT formal parameter as this is now done by the SPARK
      	flow analyzer.	(Within_Volatile_Function): New routine.
      	* sem_util.adb (Add_Contract_Item): Add processing for pragma
      	Volatile_Function.
      	(Check_Nonvolatile_Function_Profile): New routine.
      	(Is_Descendant_Of_Suspension_Object): New routine.
      	(Is_Effectively_Volatile): Protected types and descendants of
      	Suspension_Object are now treated as effectively volatile.
      	(Is_Enabled): The optional Boolean expression of pragmas
      	Async_Readers, Async_Writers, Effective_Reads and Effective_Writes
      	now appears as the first argument.
      	(Is_Volatile_Function): New routine.
      	* sem_util.ads Add SPARK RM references.
      	(Add_Contract_Item): Update the comment on usage.
      	(Check_Nonvolatile_Function_Profile): New routine.
      	(Is_Effectively_Volatile): Update the comment on usage.
      	(Is_Volatile_Function): New routine.
      	* snames.ads-tmpl Add a predefined name and pragma id for
      	Volatile_Function.
      
      From-SVN: r229047
      Hristian Kirtchev committed
    • gnat_ugn.texi, [...]: Regenerate. · e42d2186
      	* gnat_ugn.texi, gnat_rm.texi: Regenerate.
      	* doc/gnat_ugn/gnat_project_manager.rst,
      	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
      	doc/gnat_ugn/the_gnat_compilation_model.rst,
      	doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
      	doc/gnat_rm/implementation_defined_pragmas.rst,
      	doc/gnat_rm/the_gnat_library.rst,
      	doc/gnat_rm/implementation_defined_characteristics.rst: Update doc.
      
      From-SVN: r229046
      Arnaud Charlet committed
    • Enable VTV for aarch64 and arm · 2ee31fbf
      
      Requires fix for section anchors with VTV i.e. PR other/67868
      
      2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
      	* configure.tgt (aarch64*-*-linux): Enable.
      	(arm*-*-linux*): Enable.
      
      From-SVN: r229045
      Ramana Radhakrishnan committed
    • Fix VTV for targets with section anchors. · 805f52d3
      
      2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
      	PR other/67868
      	* varasm.c (assemble_variable): Move special vtv handling to..
      	(handle_vtv_comdat_sections): .. here. New function.
      	(output_object_block): Handle vtv sections.
      
      From-SVN: r229044
      Ramana Radhakrishnan committed
    • Fix VTV for targets with section anchors. · 75d363a0
      
      2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
      	PR other/67868
      	* varasm.c (assemble_variable): Move special vtv handling to..
      	(handle_vtv_comdat_sections): .. here. New function.
      	(output_object_block): Handle vtv sections.
      
      From-SVN: r229043
      Ramana Radhakrishnan committed
    • Update targets. · 04b32ed7
      From-SVN: r229042
      Arnaud Charlet committed
    • sem_ch13.adb (Analyze_One_Aspect): Avoid analyzing the expression in a… · 14f73211
      sem_ch13.adb (Analyze_One_Aspect): Avoid analyzing the expression in a 'Disable_Controlled attribute when...
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* sem_ch13.adb (Analyze_One_Aspect): Avoid
      	analyzing the expression in a 'Disable_Controlled attribute when
      	Expander_Active is False, because otherwise, we get errors about
      	nonstatic expressions in pragma-Preelaborate generic packages.
      	* restrict.ads: minor whitespace cleanup in comment
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-conhel.adb: Remove "use SAC;", because otherwise the compiler
      	complains about use clauses in run-time units. Use "use type"
      	instead.
      	* a-btgbso.adb, a-btgbso.ads, a-cbdlli.adb, a-cbdlli.ads,
      	* a-cbhama.adb, a-cbhama.ads, a-cbhase.adb, a-cbhase.ads,
      	* a-cbmutr.adb, a-cbmutr.ads, a-cborma.adb, a-cborma.ads,
      	* a-cborse.adb, a-cborse.ads, a-cdlili.adb, a-cdlili.ads,
      	* a-chtgbk.adb, a-chtgbk.ads, a-chtgbo.adb, a-chtgbo.ads,
      	* a-chtgke.adb, a-chtgke.ads, a-chtgop.adb, a-chtgop.ads,
      	* a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
      	* a-cihase.adb, a-cihase.ads, a-cimutr.adb, a-cimutr.ads,
      	* a-ciorma.adb, a-ciorma.ads, a-ciormu.adb, a-ciormu.ads,
      	* a-ciorse.adb, a-ciorse.ads, a-cobove.adb, a-cobove.ads,
      	* a-cohama.adb, a-cohama.ads, a-cohase.adb, a-cohase.ads,
      	* a-cohata.ads, a-coinve.adb, a-comutr.adb, a-comutr.ads,
      	* a-convec.adb, a-coorma.adb, a-coorma.ads, a-coormu.adb,
      	* a-coormu.ads, a-coorse.adb, a-coorse.ads, a-crbltr.ads,
      	* a-crbtgk.adb, a-crbtgk.ads, a-crbtgo.adb, a-crbtgo.ads,
      	* a-rbtgbk.adb, a-rbtgbk.ads, a-rbtgbo.adb, a-rbtgbo.ads,
      	* a-rbtgso.adb, a-rbtgso.ads: Change all the predefined containers
      	to share the tampering machinery in Ada.Containers.Helpers. This
      	reduces the amount of duplicated code, and takes advantage of
      	efficiency improvements in Helpers.
      	Protect all run-time checks and supporting machinery with "if
      	Checks" or "if T_Check", so this code can be suppressed with
      	pragma Suppress or -gnatp.
      	Add Pseudo_Reference and Get_Element_Access to remaining
      	containers, so that the compiler can optimize "for ... of" loops.
      
      From-SVN: r229041
      Bob Duff committed
    • [multiple changes] · b7737d1d
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-contai.adb, a-coinve.ads, a-contai.ads, a-conhel.adb, a-conhel.ads,
      	Makefile.rtl, a-convec.ads: Move helper code from Ada.Containers to a
      	new package Ada.Containers.Helpers, because otherwise it's not
      	visible everywhere it needs to be (e.g. in the package
      	Ada.Containers.Red_Black_Trees, Generic_Tree_Types wants to have
      	a component of type Tamper_Counts).
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_type.adb (Intersect_Types): Specialize error message when
      	one operand is a limited view which is a priori incompatible
      	with all other named types.
      	* sem_prag.adb: minor fix in comment
      	* sem_ch13.adb: Code clean up.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch12.adb (Need_Subprogram_Instance_Body): Also return true
      	for a subprogram nested in an inlined subprogram.
      
      From-SVN: r229040
      Arnaud Charlet committed
    • [multiple changes] · 6fa8f71c
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-coinve.adb, a-contai.adb: Update comments.
      	* pprint.ads: Minor reformatting.
      
      2015-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* env.c, init.c: Handle arm64-darwin like arm-darwin.
      	* tracebak.c: Handle arm64-darwin.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* s-trasym.adb (Symbolic_Traceback): When giving the traceback
      	as hexadecimal code addresses, separate by blanks instead of LF.
      
      From-SVN: r229039
      Arnaud Charlet committed
    • [multiple changes] · 36f2e3d3
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate freeze
      	node for subprogram in Compile_Only mode.
      
      2015-10-20  Dmitriy Anisimkov  <anisimko@adacore.com>
      
      	* s-atocou.adb, s-atocou.ads, a-contai.adb, a-contai.ads,
      	s-atocou-x86.adb, s-atocou-builtin.adb: Task safe over container
      	iterations.
      
      From-SVN: r229037
      Arnaud Charlet committed
    • [multiple changes] · be7e4a40
      2015-10-20  Philippe Gil  <gil@adacore.com>
      
      	* g-debpoo.ads (Dump): NEW print Debug_Pool statistics & main
      	contributors.
      	(Dump_Stdout): NEW print to stdout Debug_Pool statistics &
      	main contributors.
      	(Reset): NEW reset counters to 0.
      	(Get_Size): NEW return size allocated at parameter.
      	(High_Water_Mark): NEW.
      	(Current_Water_Mark): NEW.
      	(System_Memory_Debug_Pool): NEW tell Debug_Pools that
      	System.Memory uses it.
      	* g-debpoo.adb (Traceback_Htable_Elem): add Frees, Total_Frees
      	components.
      	(Find_Or_Create_Traceback): don't manage in System.Memory
      	Debug_Pool Deallocate Traceback's.
      	(Validity): add optional Handled table when System.Memory asked
      	for Allow_Unhandled_Memory.
      	(Allocate): handle Allocate reentrancy occuring when System.Memory
      	uses Debug_Pools.
      	(Deallocate): handle when Allow_Unhandled_Memory
      	is set deallocation of unhandled memory. Dont't check
      	Size_In_Storage_Elements if equal to Storage_Count'Last. update
      	Frees, Total_Frees new components.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* fe.h: Minor tweak.
      
      From-SVN: r229036
      Arnaud Charlet committed
    • [multiple changes] · 46ee0270
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* sem_cat.adb (Check_Categorization_Dependencies): Do nothing
      	when -gnatdu is specified.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb (analyze_Subprogram_Renaming): The actual for a
      	formal abstract subprogram must have a controlling type.
      	* stand.ads: Minor whitespace cleanup.
      
      From-SVN: r229035
      Arnaud Charlet committed
    • [multiple changes] · 47b79f78
      2015-10-20  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch13.adb: Minor reference change (RM => AARM).
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* make.adb (Check): Skip multilib switches reinstated by the
      	compiler only when counting the number of switches, since it is
      	what really matters in the regular operating mode.
      
      2015-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* einfo.adb: Add extra assertion for small clause.
      	* cstand.adb: Minor style fix in comment.
      	* debug.adb: Minor reformatting.
      	* exp_util.adb: Fix minor typo.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Same_Instantiated_Function): New predicate in
      	Check_Formal_Package_Instance, used to verify that the formal
      	and the actual of an actual package match when both are functions
      	given as attribute references.
      
      From-SVN: r229034
      Arnaud Charlet committed
    • [multiple changes] · e9f97e79
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-coinve.ads, a-coinve.adb: Do the same efficiency
      	improvements that were already done in the definite case
      	(Ada.Containers.Vectors, i.e. a-convec). This includes the
      	ability to suppress checks, the fast path for Append, inlining
      	as appropriate, and special-casing of "for ... of" loops. Reuse
      	the tampering machinery that is now in Ada.Containers. Simplify
      	many operations.
      	* a-convec.ads, a-convec.adb: Change the code to be more similar
      	to a-coinve.
      	* a-finali.ads, a-finali.adb: Expose the "null"-ness of the
      	operations. This may enable optimizations in the future, and
      	seems cleaner anyway.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Is_Operational_Item): Attributes related to
      	Ada 2012 iterators are operational items, and can be specified
      	on partial views.
      
      From-SVN: r229033
      Arnaud Charlet committed
    • [multiple changes] · 0489576c
      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
      Arnaud Charlet committed
    • [multiple changes] · 3c777b50
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* Makefile.rtl: add the following...
      	* g-binenv.ads, g-binenv.adb: New unit providing runtime access
      	to bind time captured values ("bind environment")
      	* init.c: declare new global variable __gl_bind_env_addr.
      	* bindgen.ads, bindgen.adb (Set_Bind_Env): record a bind
      	environment key=value pair.
      	(Gen_Bind_Env_String): helper to produce the bind environment data
      	called  in the binder generated file.
      	(Gen_Output_File_Ada): Call the above (Gen_Adainit): Set
      	__gl_bind_env_addr accordingly.
      	* switch-b.adb: Support for command line switch -V (user interface
      	to set a build environment key=value pair)
      	* bindusg.adb: Document the above
      
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* sem_prag.adb (Analyse_Pragma: Pragma Pure): Do not set the
      	entity as Pure if Debug_Flag_U is set.
      
      From-SVN: r229031
      Arnaud Charlet committed
    • [multiple changes] · 7188885e
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* output.adb (Write_Int): Work with negative numbers in order to avoid
      	negating Int'First and thereby causing overflow.
      	* sem_util.adb: Minor comment fix.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* make.adb (Check): Skip multilib switches reinstated by the
      	compiler when doing the comparison with switches passed to
      	gnatmake.
      
      2015-10-20  Yannick Moy  <moy@adacore.com>
      
      	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Return
      	False for procedures marked No_Return.
      	* sem_util.ads (Enclosing_Declaration): Improve comment.
      	* einfo.adb (Is_Completely_Hidden): Remove spurious assertion.
      
      From-SVN: r229029
      Arnaud Charlet committed
    • [multiple changes] · f06f5f6b
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* types.ads: Minor reformatting.
      
      2015-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb (Get_Pragma): Minor reformatting. Rename local constant
      	Is_CDG to Is_CLS. Add pragma Constant_After_Elaboration to the list of
      	classification pragmas.
      
      2015-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Declarations); At the of the visible part,
      	perform name resolution on the expressions in aspects of visible
      	entities.
      	* sem_ch13.ads, sem_ch13.adb (Resolve_Aspect_Expressions): Resolve
      	expressions in aspects independently of whether corresponding
      	entity is frozen. Used to complete name resolution of aspect
      	expressions for entities declared in the visible part of a
      	package or generic package declaration.
      
      From-SVN: r229028
      Arnaud Charlet committed
    • [multiple changes] · 40417de8
      2015-10-20  Vincent Celier  <celier@adacore.com>
      
      	* prj-attr.adb: Add package Codepeer and its attributes.
      
      2015-10-20  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_ch3.adb, sem_ch13.adb: Minor reformatting.
      
      2015-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* gnatlink.adb (Gnatlink): Do not translate --RTS switch
      	for the linker and instead pass the switches that were
      	reinstated by the compiler.
      
      2015-10-20  Bob Duff  <duff@adacore.com>
      
      	* a-contai.ads, a-convec.ads: Move Count_Type_Last from
      	a-convec.ads to a-contai.ads, so other containers can refer to it.
      
      From-SVN: r229027
      Arnaud Charlet committed