Commit Graph

131669 Commits

Author SHA1 Message Date
Arnaud Charlet
36a6636545 [multiple changes]
2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-cbmutr.adb (Allocate_Node): Remove the two parameter version.
	(Insert_Child): Add local variable First. Capture the index of the
	first node being created to ensure correct cursor construction
	later on. Use the three parameter version of Allocate_Node
	when creating multiple children as this method allows aspect
	Default_Value to take effect (if applicable).

2014-07-29  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Safe_Slice_Assignment): Remove.
	(Expand_Array_Aggregate): For a safe slice assignment, just set
	the target and use the common code path.

From-SVN: r213216
2014-07-29 17:49:30 +02:00
Arnaud Charlet
e1ea35da69 Minor doc update.
From-SVN: r213214
2014-07-29 17:23:04 +02:00
H.J. Lu
20e3f942cc Replace strtok with strtoken
PR bootstrap/61914
	* gengtype.c (strtoken): New function.
	(create_user_defined_type): Replace strtok with strtoken.

From-SVN: r213213
2014-07-29 08:19:22 -07:00
Arnaud Charlet
b8e6830b34 [multiple changes]
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb: Invert
	predicate No_Predicate_Test_On_Arguments, new name is
	Predicate_Tests_On_Arguments (with the opposite sense).

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

	* sem_attr.adb (Resolve_Attribute): Clean up the code for
	attribute 'Access. Do not generate an elaboration flag for a
	stand alone expression function. The expression of an expression
	function is now frozen when the expression function appears as
	the prefix of attribute 'Access.
	* sem_ch6.adb (Analyze_Expression_Function): Remove local
	variable New_Decl and update all references to it after the
	rewriting has taken place. Establish the linkages between the
	generated spec and body.

From-SVN: r213212
2014-07-29 17:14:04 +02:00
Arnaud Charlet
094cf3330c [multiple changes]
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (ip, rv): Prevent from being optimized away.
	* gnatls.adb (gnatls): Set E_Fatal exit status if ali file not found.
	* s-imgllb.adb, s-imgllw.adb, s-imgwiu.adb, s-imgbiu.adb: Minor
	reformatting.

2014-07-29  Vincent Celier  <celier@adacore.com>

	* prj-pp.adb: Minor comment update.
	* frontend.adb: If a target dependency info file has been read
	through switch -gnateT= add it to the dependencies of the source
	being compiled.

From-SVN: r213211
2014-07-29 17:12:14 +02:00
Arnaud Charlet
38564f8194 [multiple changes]
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, prj.adb: Minor reformatting.

2014-07-29  Vincent Celier  <celier@adacore.com>

	* prj-pp.adb (Pretty_Print.Output_Project_File): New
	procedure to output project file names between quotes without
	concatenation, even if the line is too long.
	(Pretty_Print): Use Output_Project_File for project being extended and
	project imported.

From-SVN: r213210
2014-07-29 17:06:34 +02:00
Arnaud Charlet
5f6fb720bb [multiple changes]
2014-07-29  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Document that configuration pragmas files are
	added to the dependencies, unless they contain only pragmas
	Source_File_Name_Project.

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

	* frontend.adb: Minor reformatting.

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

	* exp_ch6.adb (Add_Call_By_Copy_Code): Minor reformatting
	(Expand_Actuals): Make sure predicate checks are properly applied
	for the case of OUT or IN OUT parameters.
	* sem_res.adb: Minor reformatting (Resolve_Actuals): Skip
	predicate tests on arguments for Finalize
	* sem_util.adb (No_Predicate_Test_On_Arguments): Returns True
	if predicate tests on subprogram arguments should be skipped.
	* sem_util.ads (No_Predicate_Test_On_Arguments): New function

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

	* sem_ch3.adb (Analyze_Object_Declaration): If there is an address
	clause for the object and the expression is an aggregate, defer
	resolution and expansion of the aggregate until the freeze point
	of the entity.
	* sem_aggr.adb (Resolve_Aggregate): An others_clause is legal if
	the parent node is an N_Reference generated during expansion.

2014-07-29  Vincent Celier  <celier@adacore.com>

	* prj.adb (Add_To_Buffer): Effectively double the size of the buffer.

From-SVN: r213209
2014-07-29 17:02:05 +02:00
Robert Dewar
fc27e20e72 frontend.adb, [...]: Minor reformatting and code clean up.
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* frontend.adb, inline.adb, sem_util.adb, sem_res.adb,
	prepcomp.ads: Minor reformatting and code clean up.
	* exp_ch6.adb (Expand_Actuals): Generate predicate test
	unconditionally for case of OUT or IN OUT actual (before this
	was generated only for certain subcases, which is wrong, the
	test is always needed).

From-SVN: r213208
2014-07-29 16:59:26 +02:00
Ed Smith-Rowland
1c4ff014fe PR libstdc++/60037 - SIGFPE in std::generate_canonical<unsigned int...>
2014-07-29  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/60037 - SIGFPE in std::generate_canonical<unsigned int...>
	* include/bits/random.h (_Adaptor): static_assert for non floating-point
	result type.
	* include/bits/random.tcc (generate_canonical): Ditto.
	* include/ext/random.tcc (hypergeometric_distribution::operator()):
	Use double as a rng result type.
	* testsuite/26_numerics/random/pr60037-neg.cc: New.
	* testsuite/ext/random/hypergeometric_distribution/pr60037.cc: New.

From-SVN: r213207
2014-07-29 14:56:45 +00:00
Ed Schonberg
f3691f465e sem_ch3.adb: Move Has_Defaulted_Discriminants to sem_util.
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: Move Has_Defaulted_Discriminants to sem_util.
	* sem_ch4.adb (Analyze_Allocator): Defer resolution of expression
	until context type is available.
	* sem_res.adb (Resolve_Allocator): In the case of a qualified
	expression, complete resolution of expression.
	(Check_Aliased_Parameter): New procedure within Resolve_Actuals,
	to apply Ada2012 checks on aliased formals, as well as
	accesibility checks when the context of the call is an allocator
	or a qualified expression.
	* sem_util.ads, sem_util.adb (Has_Defaulted_Discriminants):
	Moved here from sem_ch3.
	(Object_Access_Level): Handle properly aliased formals and
	aggregates.
	* exp_ch6.adb (Expand_Call): Remove check on aliased parameters,
	now properly performed in sem_res (Resolve_Actuals,
	Check_Aliased_Parameter).

From-SVN: r213206
2014-07-29 16:56:34 +02:00
Yannick Moy
2d180af122 2014-07-29 Yannick Moy <moy@adacore.com>
* debug.adb Enable GNATprove inlining under debug flag -gnatdQ for now.
	* inline.ads, inline.adb (Can_Be_Inlined_In_GNATprove_Mode): New
	function to decide when a subprogram can be inlined in GNATprove mode.
	(Check_And_Build_Body_To_Inline): Include GNATprove_Mode as a
	condition for possible inlining.
	* sem_ch10.adb (Analyze_Compilation_Unit): Remove special case
	for Inline_Always in GNATprove mode.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build inlined
	body for subprograms in GNATprove mode, under debug flag -gnatdQ.
	* sem_prag.adb Minor change in comments.
	* sem_res.adb (Resolve_Call): Only perform GNATprove inlining
	inside subprograms marked as SPARK_Mode On.
	* sinfo.ads: Minor typo fix.

From-SVN: r213205
2014-07-29 16:55:24 +02:00
Arnaud Charlet
5ae2431279 [multiple changes]
2014-07-29  Vincent Celier  <celier@adacore.com>

	* frontend.adb: Add dependency on gnat.adc when taken into account
	and on non-temporary configuration pragmas files specified in
	switches -gnatec.
	* prepcomp.ads, prepcomp.adb (Add_Dependency): New procedure to add
	dependencies on configuration pragmas files.

2014-07-29  Pat Rogers  <rogers@adacore.com>

	* gnat_ugn.texi: Minor clarification to the explanation for the
	GNATtest -v switch.

From-SVN: r213204
2014-07-29 16:53:10 +02:00
Robert Dewar
3c04da4021 types.ads (Mechanism_Type): Change range back to -18 ..
* types.ads (Mechanism_Type): Change range back to -18 .. Int'Last with 
	documentation that explains the need for this extended range            
	(use by C_Pass_By_Copy).

From-SVN: r213203
2014-07-29 16:51:48 +02:00
Arnaud Charlet
32ccbc2ac6 Remove duplicate entry.
From-SVN: r213202
2014-07-29 16:49:46 +02:00
Arnaud Charlet
09176aea40 [multiple changes]
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi, sem_prag.adb: Minor reformatting.

2014-07-29  Sergey Rybin  <rybin@adacore.com frybin>

	* gnat_ugn.texi: gnatmetric: clarify documentation for cyclomatic
	complexity metrics.

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

	PR ada/60652
	* s-oscons-tmplt.c: For Linux, define _BSD_SOURCE in order for
	CRTSCTS to be visible.

2014-07-29  Bob Duff  <duff@adacore.com>

	* g-trasym.adb, g-trasym.ads: Code cleanup.

From-SVN: r213201
2014-07-29 16:46:27 +02:00
Doug Rupp
1b4ada8ff0 sigtramp-vxworks.c: Minor reformatting.
2014-07-29  Doug Rupp  <rupp@adacore.com>

	* sigtramp-vxworks.c: Minor reformatting.

From-SVN: r213200
2014-07-29 16:36:25 +02:00
Arnaud Charlet
155562cb3b [multiple changes]
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* gnat_rm.texi: No doc needed for Ada2012 aspect
	Implicit_dereference.

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

	* sem_attr.adb (Attribute_12): New array
	(Analyze_Attribute): Check impl-defined Ada 2012 attributes.
	(Check_Ada_2012_Attribute): Removed.

2014-07-29  Doug Rupp  <rupp@adacore.com>

	* init.c (vxworks6): Call sigtramp for RTP (as well as DKM) for ARM,
	PPC, and e500.
	* sigtramp-vxworks.c: New file.
	* sigtramp-armvxw.c, sigtramp-ppcvxw.c: removed files.

From-SVN: r213199
2014-07-29 16:12:27 +02:00
Ed Schonberg
ad8bd3f47c lib-xref.adb (Output_Refs, [...]): For a derived array type...
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Output_Refs, Check_Type_Reference): For a
	derived array type, add information about component type, which
	was previously missing in ali file.
	* gnat_rm.texi: Add documentation for Atomic_Always_Lock_Free.

From-SVN: r213198
2014-07-29 16:09:38 +02:00
Arnaud Charlet
422e02cfdf [multiple changes]
2014-07-29  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb (Constrain_Corresponding_Record): For the case
	of the subtype created for a record component, do not mark
	the subtype as frozen. For one thing, this is anomalous (in
	particular, the base type might not itself be frozen yet);
	furthermore, proper freezing of the subtype must happen in any
	case. So, we just mark the subtype as requiring delayed freezing
	(and we'll actually freeze it when generating the init_proc of
	the enclosing record).
	Also change the name of the constrained record subtype (append a
	'C' so that it is clearly different from the unconstrained record
	type, "related_idV") to make debugging easier.
	(Process_Full_View): When creating a full subtype for a pending
	private subtype, re-establish the scope of the private subtype
	so that we get proper visibility on outer discriminants.
	* exp_ch3.adb (Build_Init_Statements): Freeze any component
	subtype that is not frozen yet.

2014-07-29  Vincent Celier  <celier@adacore.com>

	* prj-proc.adb (Recursive_Process): Always initialize the
	environment when the project is an aggregate project, even when
	it is not the root tree.

From-SVN: r213197
2014-07-29 16:08:02 +02:00
Robert Dewar
0677a1c750 exp_ch5.adb, [...]: Minor comment additions.
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, exp_ch9.adb: Minor comment additions.
	* gnat_rm.texi: Complete list of implementation aspects.
	* aspects.ads: Minor comment clarification.

From-SVN: r213196
2014-07-29 16:06:20 +02:00
Arnaud Charlet
a2cc9797df [multiple changes]
2014-07-29  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): If the target type
	is a null-excluding access type, do not generate a constraint
	check if Suppress_Assignment_Checks is set on assignment node.
	* exp_ch9.adb (Build_Simple_Entry_Call): If actual is an out
	parameter of a null-excluding access type, there is access check
	on entry, so set Suppress_Assignment_Checks on generated statement
	that assigns actual to parameter block.
	* sinfo.ads: Document additional use of Suppress_Assignment_Checks.

2014-07-29  Javier Miranda  <miranda@adacore.com>

	* types.ads (Kind): Renamed as Rkind to avoid crashing ASIS.
	* exp_ch11.adb, tbuild.adb Update references to Types.Kind

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

	* par-ch3.adb (P_Type_Declaration): Create end label for
	limited record declaration, previously omitted.

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

	* gnat_rm.texi: Complete list of implementation pragmas Add
	dummy sections for impl pragmas needing documentation.

From-SVN: r213195
2014-07-29 16:02:19 +02:00
Arnaud Charlet
effdbb7d57 [multiple changes]
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Change theta to @ in documentation of aspect
	Dimension_System.

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

	* sem_attr.adb (Uneval_Old_Msg): Flags Uneval_Old_Accept/Warn
	are now on pragma.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Remove setting
	of Uneval_Old_*
	* sem_prag.adb (Analyze_Pragma): Set Uneval_Old_* flags
	* sinfo.ads, sinfo.adb: Move Uneval_Old_Accept/Warn to N_Pragma node.

2014-07-29  Javier Miranda  <miranda@adacore.com>

	* types.ads Update documentation on how to add new reason codes
	for exceptions.
	(RT_Exception_Code): Keep values ordered by their
	reason code.  Required by the .NET backend.
	(RT_CE_Exceptions): Subtype declaration removed.
	(RT_PE_Exceptions): Subtype declaration removed.
	(RT_SE_Exceptions): Subtype declaration removed.
	(Kind): New mapping table of RT_Exception_Codes.
	* exp_ch11.adb (Get_RT_Exception_Entity): Updated to use the
	new mapping table.
	* tbuild.adb (Make_Raise_Storage_Error): Updated to use the new
	mapping table.	(Make_Raise_Program_Error): Updated to use the
	new mapping table.
	(Make_Raise_Storage_Error): Updated to use the new mapping table.
	* a-except.adb Keep Rcheck_CE_xxx entities ordered according to
	their reason code.

From-SVN: r213194
2014-07-29 16:00:06 +02:00
Arnaud Charlet
09d67391ff [multiple changes]
2014-07-29  Thomas Quinot  <quinot@adacore.com>

	* gnat_rm.texi: Document internal attributes used for PolyORB/DSA
	distributed stubs generation.
	* exp_ch3.adb: Minor reformatting.

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

	* sinfo.ads: Document constraint between frontend and GNATprove.

From-SVN: r213193
2014-07-29 15:58:21 +02:00
Robert Dewar
c93af80704 a-except.adb: Minor comment clarification.
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* a-except.adb: Minor comment clarification.

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

	* gnat_rm.texi: Complete list of implementation attributes.
	* snames.ads-tmpl: Clean up list of impl-defined attributes.

From-SVN: r213192
2014-07-29 15:56:59 +02:00
Arnaud Charlet
f9e333abc4 [multiple changes]
2014-07-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* freeze.adb (Freeze_Record_Type): Perform various
	volatility-related checks.

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

	* sem_ch3.adb, sem_eval.adb: Minor reformatting.

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

	* sem_attr.adb: sem_attr.adb (Access_Attribute): Handle properly
	the case where the attribute reference appears in a nested scope
	from that of the subprogram prefix.
	* sem_attr.adb: Minor reformatting.

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

	* gnat_ugn.texi: Clarify documentation of Initialize_Scalar
	initialization options.

From-SVN: r213191
2014-07-29 15:54:42 +02:00
Arnaud Charlet
87e697202e [multiple changes]
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Minor comment addition.

2014-07-29  Bob Duff  <duff@adacore.com>

	* sem_eval.adb, sem_ch13.adb: Minor reformatting.

From-SVN: r213190
2014-07-29 15:52:53 +02:00
Arnaud Charlet
113a9fb6c6 [multiple changes]
2014-07-29  Doug Rupp  <rupp@adacore.com>

	* init.c: Complete previous change.

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

	* exp_ch4.adb (Expand_N_If_Expression): Deal with unconstrained
	array case.

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

	* sem_attr.adb (Access_Attribute): If the prefix is a subprogram
	and the completion will appear in the same declarative part,
	create elaboration flag.
	* exp_util.adb (Set_Elaboration_Flag): If the subprogram body
	is a completion of a declaration in the same declarative part,
	and the subprogram has had its address taken, add elaboration
	check inside the subprogram body, to detect elaboration errors
	that may occur through indirect calls.

From-SVN: r213189
2014-07-29 15:51:03 +02:00
Nathan Sidwell
1992616143 libgcov.h: Move renaming of entry points to lib gcov specific portion.
libgcc/
	* libgcov.h: Move renaming of entry points to lib gcov specific
	portion.
	(gcov_do_dump): New rename.
	(gcov_rewrite): Remove inline, make HIDDEN.
	* libgcov-driver.c (gcov_clear, gcov_exit): Remove declarations.
	(gcov_exit_compute_summary): Rename to ...
	(compute_summary): ... here.  Add LIST argument.
	(gcov_exit_merge_gcda): Rename to ...
	(merge_one_data): ... here.
	(gcov_exit_write_gcda): Rename to ...
	(write_one_data): ... here.
	(gcov_exit_merge_summary): Rename to ...
	(merge_summary): Add RUN_COUNTED argument.
	(gcov_exit_dump_gcov): Rename to ...
	(dump_one_gcov): Add RUN_COUNTED argument.
	(gcov_do_dump): New function, broken out of ...
	(gcov_exit): ... here.  Call it.

	gcc/
	* gcov-io.c (gcov_var): Make hidden.
	* gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
	(gcov_do_dump): Declare.
	(gcov_output_files): Call gcov_do_dump, not gcov_exit).

From-SVN: r213188
2014-07-29 13:48:38 +00:00
Arnaud Charlet
3808a9c729 [multiple changes]
2014-07-29  Doug Rupp  <rupp@adacore.com>

	* sigtramp-armvxw.c: Enhance to handle RTP trampolining.
	* init.c: Remove guard on sigtramp for ARM VxWorks RTP.

2014-07-29  Vincent Celier  <celier@adacore.com>

	* switch-c.adb (Scan_Front_End_Switches): Do not fail when two
	runtime directorie specified with two switches --RTS= designate
	the same directory, even when there are no literarily the same.

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

	* gnat_ugn.texi: Minor documentation clarification.
	* switch-c.adb: Minor reformatting.

From-SVN: r213187
2014-07-29 15:48:13 +02:00
Arnaud Charlet
24d14b918a [multiple changes]
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.

From-SVN: r213185
2014-07-29 15:43:43 +02:00
Robert Dewar
b94b6c565e sem_ch10.adb, [...]: Minor reformatting.
2014-07-29  Robert Dewar  <dewar@adacore.com>

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

From-SVN: r213183
2014-07-29 15:41:27 +02:00
Ed Schonberg
ecad37f3e1 sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build body to inline in GNATprove mode when subprogran is marked Inline_Always.
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.

From-SVN: r213182
2014-07-29 15:40:27 +02:00
Arnaud Charlet
1773d80bb6 [multiple changes]
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.

From-SVN: r213181
2014-07-29 15:39:22 +02:00
Arnaud Charlet
3f80a18209 [multiple changes]
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.

From-SVN: r213180
2014-07-29 15:37:03 +02:00
Ed Schonberg
540d86108f sem_ch6.adb: Move Build_Body_To_Inline...
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.

From-SVN: r213179
2014-07-29 15:35:32 +02:00
Arnaud Charlet
b973629e61 [multiple changes]
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.

From-SVN: r213178
2014-07-29 15:34:35 +02:00
Arnaud Charlet
a7737c19cf [multiple changes]
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.

From-SVN: r213177
2014-07-29 15:32:08 +02:00
Arnaud Charlet
ab01e61483 [multiple changes]
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.

From-SVN: r213175
2014-07-29 15:30:02 +02:00
Robert Dewar
a8b346d2eb sem_ch3.adb, [...]: Minor reformatting.
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.

From-SVN: r213174
2014-07-29 15:27:42 +02:00
Arnaud Charlet
84c0a895d4 [multiple changes]
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.

From-SVN: r213173
2014-07-29 15:26:20 +02:00
Arnaud Charlet
7a2c227741 [multiple changes]
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.

From-SVN: r213172
2014-07-29 15:24:47 +02:00
Arnaud Charlet
28e18b4f56 [multiple changes]
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.

From-SVN: r213170
2014-07-29 15:22:51 +02:00
Arnaud Charlet
f8c79ade9e [multiple changes]
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.

From-SVN: r213169
2014-07-29 15:20:26 +02:00
Arnaud Charlet
b329a739f8 [multiple changes]
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.

From-SVN: r213168
2014-07-29 15:17:53 +02:00
Arnaud Charlet
220d1fd9df [multiple changes]
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.

From-SVN: r213167
2014-07-29 15:16:09 +02:00
Robert Dewar
a08bf2de29 freeze.adb (Freeze_Entity, [...]): Add a guard to make sure that the Etype of a component of the corresponding...
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.

From-SVN: r213165
2014-07-29 15:11:55 +02:00
Arnaud Charlet
b8b2d9829a [multiple changes]
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.

From-SVN: r213164
2014-07-29 15:10:48 +02:00
Arnaud Charlet
02bb076558 [multiple changes]
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.

From-SVN: r213163
2014-07-29 15:08:12 +02:00
Robert Dewar
fc3a3f3b7e einfo.ads, einfo.adb (Static_Real_Or_String_Predicate): New function
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.

From-SVN: r213162
2014-07-29 15:03:49 +02:00
Robert Dewar
60f908dd02 sem_aggr.adb, [...]: General cleanup of static predicate handling.
2014-07-29  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, exp_ch5.adb, sem_ch5.adb, exp_util.adb, einfo.adb,
	einfo.ads, sem_util.adb, sem_attr.adb, sem_case.adb, sem_eval.adb,
	sem_eval.ads, sem_ch13.adb: General cleanup of static predicate
	handling. Change name of Discrete_Predicate to
	Discrete_Static_Predicate, and replace testing of the presence of this
	field by testing the flag Has_Static_Expression.

From-SVN: r213161
2014-07-29 15:02:06 +02:00