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

	* einfo.ads, einfo.adb (Static_Real_Or_String_Predicate): New function
	(Set_Static_Real_Or_String_Predicate): New procedure
	* sem_ch13.adb (Build_Predicate_Functions): Accomodate static
	string predicates (Is_Predicate_Static): Handle static string
	predicates.
	* sem_eval.adb (Real_Or_String_Static_Predicate_Matches):
	New procedure (Check_Expression_Against_Static_Predicate):
	Deal with static string predicates, now fully implemented
	(Eval_Relational_Op): Allow string equality/inequality as static
	if not comes from source.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213162 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (Has_Protected): Test base type.
	* sem_ch4.adb (Analyze_Allocator): Reorganize code to make sure
	that we always properly check No_Protected_Type_Allocators.

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

	* sem_util.ads, sem_util.adb (Defining_Entity):	Now applies to
	loop declarations as well.
	* exp_ch5.adb (Expand_Loop_Statement): Apply Qualify_Entity_Names
	to an iterator loop, because it may contain local renaming
	declarations that require debugging information.

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

	* sem_util.ads, exp_util.adb, sem_attr.adb: Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213163 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb, types.ads, types.h, exp_ch11.adb, a-except.adb,
	a-except-2005.adb: Add new reason code PE_Stream_Operation_Not_Allowed,
	and then use it when a stream operation is used from a library generic
	when the restriction (No_Streams) is active.

2014-07-29  Thomas Quinot  <quinot@adacore.com>

	* projects.texi: Fix minor typo.

2014-07-29  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Fix generation of warning.

2014-07-29  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch5.adb (Check_Unreachable_Code): Do not remove code in
	CodePeer mode.

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

	* exp_ch7.adb (Find_Last_Init): Add local variable
	Deep_Init_Found. Check the statement immediately following the
	declaration if [Deep_]Initialization was not found.

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

	* exp_util.adb (Is_Aliased): It appears that
	'reference-d and renamed objects still play some role in Boolean
	expression with actions and cannot be finalized immediately.

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

	* exp_dbug.adb (Qualify_Needed):  For debugging purposes,
	Loop names are not part of the full qualification of entity names.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213164 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity, Concurrent_Type case): Add a guard
	to make sure that the Etype of a component of the corresponding
	record type is present before trying to freeze it.
	* sem_ch5.adb: Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213165 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* ali.adb (Initialize_ALI): Initialize SSO_Default_Specified
	(Scan_ALI): Set SSO_Default in ALIs_Record (Scan_ALI): Set
	SSO_Default_Specified.
	* ali.ads (ALIs_Record): Add field SSO_Default
	(SSO_Default_Specified): New global switch.
	* bcheck.adb (Check_Consistent_SSO_Default): New procedure
	(Check_Configuration_Consistency): Call this procedure
	* einfo.adb (SSO_Set_High_By_Default): New
	function (SSO_Set_Low_By_Default): New function
	(Set_SSO_Set_High_By_Default): New procedure
	(Set_SSO_Set_Low_By_Default): New procedure (Write_Entity_Flags):
	List new flags
	* einfo.ads (SSO_Set_Low_By_Default): New flag
	(SSO_Set_High_By_Default): New flag
	* freeze.adb (Set_SSO_From_Default): New procedure
	(Freeze_Array_Type): Call Set_SSO_From_Default
	(Freeze_Record_Type): Call Set_SSO_From_Default
	* gnat_rm.texi: Document pragma Default_Scalar_Storage_Order
	* lib-writ.adb (Write_ALI): Set OL/OH in P line as needed
	* lib-writ.ads: Add OL/OH parameters to P line
	* opt.adb: Set Default_SSO, Default_SSO_Config as appropriate
	* opt.ads (Default_SSO): New global switch (Default_SSO_Config):
	New global switch
	* repinfo.adb (List_Scalar_Storage_Order): List SSO when it is
	set by default using pragma Default_Scalar_Storage_Order.
	* sem.ads (Scope_Stack_Entry): Add component Save_Default_SSO
	* sem_ch13.adb (Inherit_Delayed_Rep_Aspects):
	Clear SSO defaults when explicit SSO is inherited.
	(Analyze_Attribute_Definition_Clause): Clear SSO defaults when
	explicit SSO is specified.
	(Inherit_Aspects_At_Freeze_Point):
	Clear SSO default when inheriting SSO.
	* sem_ch3.adb (Set_Default_SSO): New procedure
	(Analyze_Private_Extension_Declaration): Set defualt SSO
	(Array_Type_Declaration): ditto (Build_Derived_Array_Type): ditto
	(Build_Derived_Private_Type): ditto (Build_Derived_Record_Type):
	ditto (Build_Derived_Type): ditto (Make_Class_Wide_Type): ditto
	(Record_Type_Declaration): ditto
	* sem_ch8.adb (Pop_Scope): Restore Default_SSO (Push_Scope):
	Save Default_SSO
	* sem_prag.adb (Analyze_Pragma, case
	Default_Scalar_Storage_Order): Set Default_SSO

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

	* sem_ch6.adb (Valid_Operator_Definition): Verify that
	all parameter have mode IN. This check must be done here for
	subprogram instantiations that have operator names, because their
	analysis does not follow the same path as that for subprogram
	declarations.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213167 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Clean up and correct documentation of warnings.
	* usage.adb: Minor corrections to make sure warnings are properly
	documented.
	* warnsw.adb (Set_Warning_Switch): Remove redundant return statement.
	(WA_Warnings): Add Warn_On_Suspicious_Modulus_Value.

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

	* exp_ch3.adb (Expand_N_Object_Declaration): The dummy block
	created to match internal sequence numbers between compilations
	with/without abort must have its type properly set.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213168 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Olivier Hainque  <hainque@adacore.com>

	* g-debpoo.adb
	(Default_Alignment): Rename as Storage_Alignment. This is not
	a "default" that can be overriden. Augment comment to clarify
	intent and document why we need to manage alignment padding.
	(Header_Offset): Set to Header'Object_Size instead of 'Size
	rounded up to Storage_Alignment. Storage_Alignment on the
	allocation header is not required by our internals so was
	overkill. 'Object_Size is enough to ensure proper alignment
	of the header address when substracted from a storage address
	aligned on Storage_Alignment.
	(Minimum_Allocation): Rename as Extra_Allocation, conveying that
	this is always added on top of the incoming allocation requests.
	(Align): New function, to perform alignment rounding operations.
	(Allocate): Add comments on the Storage_Address computation
	scheme and adjust so that the alignment padding applies to that
	(Storage_Address) only.

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

	* exp_ch3.adb (Default_Initialize_Object): Remove incorrect
	pragma Unreferenced.
	* cstand.adb (Create_Standard): Use E_Array_Type for standard
	string types. Make sure index of Any_String/Any_Array is in a list.
	* errout.adb: Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213169 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Complete_Object_Operation): If the type of the
	candidate subprogram is a limited view, use non-limited view
	when available.

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

	* sem_ch13.adb: Minor change in RM reference.
	* sem_mech.ads: Minor reformatting.
	* einfo.ads: Minor comment fix.
	* types.ads: Minor correction to range given for Mechanism_Type.
	* exp_ch6.adb (Add_Invariant_And_Predicate_Checks): Do not
	check predicate on way out for OUT or IN OUT parameters.
	* par-ch3.adb (P_Constraint_Opt): Handle missing RANGE keyword
	better (P_Range_Constraint): Corresponding fix.
	* checks.ads: Minor comment clarification.

2014-07-29  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Set the Is_Volatile
	and Treat_As_Volatile flags based on whether the renamed object
	is a volatile object.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213170 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add section on Wide_Wide_Character encodings.
	* erroutc.adb (Output_Error_Msgs): Take wide characters into
	account in computing position of error flags.
	* sinput.adb (Get_Column_Number): Take wide characters into
	account.

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

	* par-ch3.adb (P_Access_Type_Definition): The subtype indication
	in an access type definition can carry a null_exclusion indicator.
	* sem_ch3.adb (Access_Type_Declaration): If the subtype indication
	carries a null_exclusion indicator, verify that the subtype
	indication denotes an access type, and create a null-excluding
	subtype for it.
	* sinfo.ads, sinfo.adb: New attribute Null_Excluding_Subtype,
	defined on N_Access_To_Object_Definition to indicate that the
	subtype indication carries a null_exclusion indicator.

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

	* exp_ch6.adb (Add_Extra_Actual): Do not construct
	the extra actual by name, generate a reference instead.

2014-07-29  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Do not crash analyzing
	Allow_Integer_Address if already set.
	* a-except-2005.adb (Rcheck_PE_Stream_Operation_Not_Allowed):
	Fix order, for consistency with Rmsg_xx declarations.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213172 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Return_Subtype_Indication): Reject a return
	subtype indication in an extended return statement when the
	return value is an ancestor of the return type of the function,
	and that return type is a null record extension.

2014-07-29  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.adb (Rep_Item_Too_Late): Specialize/clarify error
	message produced for the case of a type-related representation
	item that is made illegal by 13.10(1).
	* gnat_rm.texi (Scalar_Storage_Order): Minor change in
	documentation.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213173 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sinfo.ads, types.ads, sem_prag.adb, a-except-2005.adb,
	sem_ch6.adb, par-ch3.adb: Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213174 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (Derived_Type_Link): New function
	(Set_Derived_Type_Link): New procedure.
	(Write_Field31_Name): Output Derived_Type_Link.
	* einfo.ads: New field Derived_Type_Link.
	* exp_ch6.adb (Expand_Call): Warn if change of representation
	needed on call.
	* sem_ch13.adb: Minor addition of ??? comment.
	(Rep_Item_Too_Late): Warn on case that is legal but could cause an
	expensive implicit conversion.
	* sem_ch3.adb (Build_Derived_Type): Set Derived_Type_Link if needed.

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

	* exp_ch3.adb (Build_Init_Procedure): Renamed Local_DF_Id
	to DF_Id. Add new local variable DF_Call. Do not perform any
	elaboration-related checks on the call to the partial finalization
	routine within an init proc to avoid generating bogus elaboration
	warnings on expansion-related code.
	* sem_elab.adb (Check_A_Call): Move constant Access_Case to
	the top level of the routine.  Ensure that Output_Calls takes
	into account flags -gnatel and -gnatwl when emitting warnings
	or info messages.
	(Check_Internal_Call_Continue): Update the call to Output_Calls.
	(Elab_Warning): Moved to the top level of routine Check_A_Call.
	(Emit): New routines.
	(Output_Calls): Add new formal parameter Check_Elab_Flag along with a
	comment on usage. Output all warnings or info messages only when the
	caller context demands it and the proper elaboration flag is set.

2014-07-29  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Analyze_Attribute/Attribute_Old):
	Check rule about Old appearing in potentially unevaluated
	expression everywhere, not only in Post.

2014-07-29  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb: Update comment.
	* a-except.adb, a-except-2005.adb: Minor editing.

2014-07-29  Pierre-Marie Derodat  <derodat@adacore.com>

	* exp_dbug.adb (Debug_Renaming_Declaration):
	Do not create renaming entities for renamings of non-packed
	objects and for exceptions.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213175 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Jerome Lambourg  <lambourg@adacore.com>

	* expect.c (__gnat_expect_poll): New parameter dead_process
	used to return the dead process among the array of file
	descriptors. The Windows, VMS and HPUX implementations now
	properly report the dead process via this parameter. Other unixes
	don't need it.
	* g-expect.adb (Poll): Adapt to the C profile.
	(Expect_Internal): Use the new parameter to properly close the
	File Descriptor.  This then can be properly reported by the
	function First_Dead_Process as is expected.

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

	* gnat_ugn.texi: Minor clarification of -gnatQ switch.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213177 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* exp_dbug.adb, g-expect.adb, sem_elab.adb: Minor typo fix.

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

	* sem_ch6.adb (Analyze_Return_Type): Reject a return type that
	is a limited view when the context is a package body, because
	there is no subsequent place at which the non-limited view may
	become visible.
	(Process_Formals): Ditto.
	* sinfo.ads, par-ch3.adb: Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213178 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb: Move Build_Body_To_Inline,
	Check_And_Buid_Body_To_Inline, and Cannot_Inline to package Inline.
	* exp_ch6.adb: Mode Expand_Inlined_Body to package Inline.
	* inline.ads, inline.adb: Package now contains subprograms that
	implement front-end inlining.  No functional changes, no test
	needed.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213179 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads, inline.adb, inline.ads, sem_ch6.adb: Minor reformatting.
	* snames.ads-tmpl: Minor reformatting.
	* xsnamest.adb (XSnamesT): Remove special casing of Name_Error
	to give <Error>.  Not clear why this was there, but the compiler
	sources do not reference Name_Error, and this interfered with
	the circuits for pragma Unevaluated_Use_Of_Old.

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

	* sem_prag.adb (Process_Atomic_Shared_Volatile): Allow volatile
	types in SPARK 2014 (again).
	* sem_res.adb (Is_OK_Volatile_Context): New routine.
	(Resolve_Entity_Name): Ensure that a volatile object with
	enabled properties Async_Writers or Effectire_Reads appears in
	a non-interfering context.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213180 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* inline.ads, inline.adb, sem_ch10.adb: Rename Check_Body_For_Inlining
	to Check_Package_Body_For_Inlining, to prevent confusion with other
	inlining subprograms.

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

	* opt.ads: Minor comment update.
	* sem_attr.adb (Uneval_Old_Msg): Deal with case of aspect, where
	we want setting of Uneval_Old at time of encountering the aspect.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Capture setting
	of Opt.Uneval_Old.
	* sinfo.adb (Uneval_Old_Accept): New function (Uneval_Old_Warn):
	New function (Set_Uneval_Old_Accept): New procedure.
	(Set_Uneval_Old_Warn): New procedure.
	* sinfo.ads: Uneval_Old_Accept: New flag Uneval_Old_Warn: New flag.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213181 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build body to
	inline in GNATprove mode when subprogran is marked Inline_Always.
	* sem_res.adb (Resolve_Call): Expand call in place in GNATProve
	mode if body to inline is available.
	* sem_prag.adb (Analyze_Pragma, case Inline_Always): Make pragma
	effective in GNATprove mode.
	* sem_ch10.adb (Analyze_Compilation_Unit): Call
	Check_Package_Body_For_Inlining in GNATprove mode, so that body
	containing subprograms with Inline_Always can be available before
	calls to them.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213182 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch10.adb, debug.adb, sem_prag.adb, sem_res.adb, sem_ch6.adb:
	Minor reformatting.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213183 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
	Fix incorrect RTE call which caused bomb if pragma was in
	configuration pragma file.

2014-07-29  Jerome Lambourg  <lambourg@adacore.com>

	* expect.c (__gnat_expect_poll): Fix typo in previous change.
	* g-expect.adb: Update comments.

2014-07-29  Arnaud Charlet  <charlet@adacore.com>

	* s-parame-hpux.ads, s-parame-vms-ia64.ads, s-parame.ads
	(Default_Attribute_Count): Bump to 16 on native platforms.

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

	* sem_res.adb: Add guard to front-end inlining for SPARK.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213185 138bc75d-0d04-0410-961f-82ee72b054a4