Commit Graph

131548 Commits

Author SHA1 Message Date
Jason Merrill
a41844e513 re PR ipa/61659 (Extra undefined symbol because of devirtualization)
PR c++/61659
	PR c++/61687
Revert:
gcc/c-family/
	* c.opt (-fuse-all-virtuals): New.
gcc/cp/
	* decl2.c (mark_all_virtuals): New variable.
	(maybe_emit_vtables): Check it instead of flag_devirtualize.
	(cp_write_global_declarations): Set it and give helpful diagnostic
	if it introduces errors.
	* class.c (finish_struct_1): Check it.

From-SVN: r213308
2014-07-30 13:27:20 -04:00
Jason Merrill
d5d0ed2d89 re PR lto/53808 (Undefined symbol when building a library with lto)
PR lto/53808
	PR c++/61659
	* pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
	(check_explicit_specialization): Clear it on specializations.
	* decl.c (duplicate_decls, start_decl): Likewise.
	(grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
	* method.c (implicitly_declare_fn): Set DECL_COMDAT.  Determine
	linkage after setting the appropriate flags.
	* tree.c (decl_linkage): Don't check DECL_COMDAT.
	* decl2.c (mark_needed): Mark clones.
	(import_export_decl): Not here.

From-SVN: r213307
2014-07-30 13:27:14 -04:00
Martin Jambor
ea3e455ac7 tree-sra.c (sra_ipa_modify_assign): Change type of the first parameter to gimple.
2014-07-30  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (sra_ipa_modify_assign): Change type of the first
	parameter to gimple.

From-SVN: r213306
2014-07-30 18:39:23 +02:00
Ulrich Weigand
87cb0c0cdb s390.c (s390_emit_tpf_eh_return): Pass original return address as second parameter to __tpf_eh_return routine.
gcc/

2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
	address as second parameter to __tpf_eh_return routine.

libgcc/

2014-07-30  J. D. Johnston  <jjohnst@us.ibm.com>

	* config/s390/tpf-unwind.h: Include <stdbool.h>.
	(__tpf_eh_return): Add original return address as second parameter.
	Handle cases where unwinder routines were called directly, instead
	of from within the C++ library.

From-SVN: r213305
2014-07-30 16:26:15 +00:00
Jiong Wang
e58d3b417c Fix Thumb2 testsuite fallout.
Applied for Jiong.

2014-07-30  Jiong Wang  <jiong.wang@arm.com>

	* config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
	Thumb2.

From-SVN: r213304
2014-07-30 16:24:12 +00:00
Arnaud Charlet
3fa699d1d3 * gnat.dg/case_null.adb, gnat.dg/specs/debug1.ads: Adjust tests.
From-SVN: r213303
2014-07-30 18:05:46 +02:00
Arnaud Charlet
72b4f1fc78 Code clean ups.
From-SVN: r213302
2014-07-30 17:20:45 +02:00
Arnaud Charlet
0be7dcbbdb [multiple changes]
2014-07-30  Thomas Quinot  <quinot@adacore.com>

	* gnat_rm.texi: Minor doc fixes.

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

	* a-rbtgbo.adb, sem_ch13.adb: Minor reformatting.

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

	* errutil.adb (Set_Msg_Text): Process tilde ('~'): no processing
	of error message.
	* prj-nmsc.adb (Locate_Directory): Use a tilde ('~') in the
	message to report that a directory cannot be created, to avoid
	processing of the directory path that may contains special
	insertion characters.

From-SVN: r213301
2014-07-30 17:19:17 +02:00
Arnaud Charlet
a18e3d6279 [multiple changes]
2014-07-30  Ed Schonberg  <schonberg@adacore.com>

	* a-crdlli.ads: Place declaration of Empty_List after full type
	declaration for Curosr, to prevent freezing error.

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

	* get_targ.adb: Minor code reorganization.
	* prj-proc.adb, prj-proc.ads, get_targ.ads, sem_ch6.adb: Minor
	reformatting.

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

	* a-cbhase.adb: a-cbhase.adb (Insert): Raise Constraint_Error,
	not Program_Error, when attempting to remove an element not in
	the set. This is the given semantics for all set containers.

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

	* a-rbtgbo.adb: -rbtgbo.adb (Delete_Node_Sans_Free): If
	element is not present in tree return rather than violating
	an assertion. Constraint_Error will be raised in the caller if
	element is not in the container.

From-SVN: r213300
2014-07-30 17:17:33 +02:00
Arnaud Charlet
1ebc2612da [multiple changes]
2014-07-30  Arnaud Charlet  <charlet@adacore.com>

	* set_targ.adb (Read_Target_Dependent_Values): New subprogram.
	(elab body): Add provision for default target config file.
	* get_targ.ads, get_targ.adb (Get_Back_End_Config_File): New subprogram.

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

	* a-cbhase.adb (Delete): Raise Constraint_Error, not Program_Error,
	when attempting to remove an element not in the set. This is
	the given semantics for all set containers.
	* a-cborse.adb (Delete): Attempt removal first, to check for
	tampering, before checking whether this is an attempt to
	delete a  non-existing element, and in fthe latter case raise
	Constraint_Error.

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

	* prj-proc.adb (Recursive_Process): Do not create a new
	Project_Id if the project is already in the list of projects of
	the tree.

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

	* sem_ch6.adb (Analyze_Function_Return): Reject a return expression
	whose type is an incomplete formal type.
	(Analyze_Return_Type): Reject a return type that is an untagged
	imcomplete formal type.
	(Process_Formals): Reject a formal parameter whose type is an
	untagged formal incomplete type.
	* sem_res.adb (Resolve_Actuals): Reject an actual whose type is
	an untagged formal incomplete type.

From-SVN: r213299
2014-07-30 17:15:32 +02:00
Robert Dewar
45ec05e18a gnat_ugn.texi: Minor spelling correction.
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Minor spelling correction.
	* makeutl.adb: Minor code reorganization.
	* exp_ch4.adb, exp_aggr.adb, exp_ch3.adb: Minor reformatting.

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

	* einfo.ads (Has_Unchecked_Union): Document that this is used
	to check for illegal Valid_Scalars attribute references.
	* exp_attr.adb (Build_Record_VS_Func): New function
	(Expand_N_Attribute_Reference, case Valid_Scalars): Call this
	function.
	* gnat_rm.texi: Document 'Valid_Scalars cannot be applied to
	Unchecked_Union Add note on 'Valid_Scalars generating a lot
	of code.
	* sem_attr.adb (Analyze_Attribute, case Valid_Scalars): Give
	error on attempt to apply Valid_Scalars to Unchecked_Union type.

From-SVN: r213298
2014-07-30 17:13:23 +02:00
Arnaud Charlet
ad9560ea43 [multiple changes]
2014-07-30  Steve Baird  <baird@adacore.com>

	* exp_ch4.adb (Expand_N_Indexed_Component): Disable optimized handling
	of A(I..J)(K) in CodePeer_Mode.

2014-07-30  Ben Brosgol  <brosgol@adacore.com>

	* gnat_ugn.texi: Fix typo.

From-SVN: r213297
2014-07-30 17:11:17 +02:00
Arnaud Charlet
b3f5eef0ed [multiple changes]
2014-07-30  Thomas Quinot  <quinot@adacore.com>

	* lib-writ.ads: document format change.

2014-07-30  Pascal Obry  <obry@adacore.com>

	* prj-util.adb (For_Interface_Sources): Do not
	include sources from withed externally built projects.

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

	* lib.adb: Minor reformatting.
	* prj-util.adb: Minor reformatting.

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

	* exp_aggr.adb (Build_Record_Aggr_Code): For an array component
	that depends on discriminants, and which is given by an others
	clause, create an explicit subtype with the discriminant values
	of the enclosing aggregate, because the backend cannot otherwise
	retrieve the actual bounds of the array.

2014-07-30  Fedor Rybin  <frybin@adacore.com>

	* gnat_ugn.texi: Improve gnattest documentation.

2014-07-30  Pascal Obry  <obry@adacore.com>

	* makeutl.adb (Insert_Project_Sources): Properly handle sources
	that are aggregated. We want to include sources not only part
	of libraries but also if part of an aggregated project from an
	aggregate library.
	* prj.adb (For_Project_And_Aggregated_Context): Properly check
	state of root project.

From-SVN: r213296
2014-07-30 17:09:05 +02:00
Thomas Quinot
9e5a6ee7c8 lib-load.ads: Minor reformatting.
2014-07-30  Thomas Quinot  <quinot@adacore.com>

	* lib-load.ads: Minor reformatting.
	* sinfo.ads (Library_Unit): Update comment.
	* lib.ads (Notes): Simplify. The Unit component in Notes_Entry
	is redundant. Instead used the pragma Node_Id directly as the
	element type.

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

	* lib.adb (Store_Note): Store only notes that do not come from
	an instance, and that are in the extended main source unit.
	* lib-writ (Write_Unit_Information): Annotations from subunits
	must be emitted along with those for the main unit, and they
	must carry a specific file name.
	* ali.ads (Notes_Record): Use a File_Name_Type instead of a
	Unit_Id for the source file containing the pragma, as in the
	case of annotations from subunits we might not have a readily
	available unit id.
	* ali.adb (Scan_ALI): Account for above change in data structure.

From-SVN: r213295
2014-07-30 17:06:40 +02:00
Arnaud Charlet
3ea8f61e9f [multiple changes]
2014-07-30  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Insert_Project_Sources): When the library project
	is an aggregate Stand-Alone Library, insert in the queue the
	Ada interface units, with Closure set to True;

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

	* sem_util.adb: Fix minor typo.
	* makeutl.adb: Minor reformatting.

From-SVN: r213294
2014-07-30 17:04:20 +02:00
Tom Tromey
976d5a222f re PR c/59855 (Support sparse-style __attribute__((designated_init)) on structures, requiring designated initializers)
2014-07-30  Tom Tromey  <tromey@redhat.com>

	PR c/59855
	* doc/invoke.texi (Warning Options): Document -Wdesignated-init.
	* doc/extend.texi (Type Attributes): Document designated_init
	attribute.

2014-07-30  Tom Tromey  <tromey@redhat.com>

	PR c/59855
	* c.opt (Wdesignated-init): New option.
	* c-common.c (c_common_attribute_table): Add "designated_init".
	(handle_designated_init): New function.

2014-07-30  Tom Tromey  <tromey@redhat.com>

	* c-typeck.c (struct constructor_stack) <designator_depth>: New
	field.
	(really_start_incremental_init, push_init_level): Initialize
	designator_depth.
	(pop_init_level): Set global designator_depth.
	(process_init_element): Check for designated_init attribute.

From-SVN: r213293
2014-07-30 15:02:59 +00:00
Arnaud Charlet
41c79d60e5 [multiple changes]
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb, checks.adb, makeutl.adb, makeutl.ads: Minor reformatting.

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

	* checks.ads: Fix typo in comment.

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

	* sem_util.adb (Set_Debug_Info_Needed): For scalar types, recurse on
	entities that materialize range bounds, if any.

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

	* projects.texi: Minor spelling fix.

From-SVN: r213292
2014-07-30 17:01:55 +02:00
Arnaud Charlet
8e88892042 [multiple changes]
2014-07-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Make_Bignum_Block): Use the new secondary stack
	build routines to manage the mark.
	* exp_ch7.adb (Create_Finalizer, Expand_Cleanup_Actions):
	Use the new secodary stack build routines to manage the mark.
	(Insert_Actions_In_Scope_Around): Add new formal parameter
	Manage_SS along with comment on its usage. Code and comment
	reformatting. Mark and release the secondary stack when the
	context warrants it.
	(Make_Transient_Block): Update the call
	to Insert_Actions_In_Scope_Around to account for parameter Manage_SS.
	(Wrap_Transient_Declaration): Remove local variable
	Uses_SS. Ensure that the secondary stack is marked and released
	when the related object declaration appears in a library level
	package or package body. Code and comment reformatting.
	* exp_util.ads, exp_util.adb (Build_SS_Mark_Call): New routine.
	(Build_SS_Release_Call): New routine.

2014-07-30  Steve Baird  <baird@adacore.com>

	* exp_attr.adb: Revert previous change, not needed after all.

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

	* makeutl.adb (Queue.Insert_Project_Sources): Insert with
	Closure => True for interfaces of Stand-Alone Libraries.
	* makeutl.ads (Source_Info (Format => Gprbuild)): Add new
	Boolean component Closure, defaulted to False.

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

	* sem_res.adb: Fix typo in error message.

From-SVN: r213291
2014-07-30 16:57:28 +02:00
Arnaud Charlet
63a4aa4375 [multiple changes]
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb (Process_Range_Expr_In_Decl): Use _FIRST/_LAST
	as name suffixes rather than L/H for subtype bounds.
	* tbuild.ads: Minor comment improvements and fixes
	(Make_External_Name): Document that suffix can start with an
	underscore.

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

	* gnat_ugn.texi: Document --rep-clauses switch.

From-SVN: r213290
2014-07-30 16:53:56 +02:00
Arnaud Charlet
33c9f9af6c [multiple changes]
2014-07-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Default_Value and
	Default_Component_Value can only be specified for scalar type or
	arrays of scalar types respectively.  This legality check must
	be performed at the point the aspect is analyzed, in order to
	reject aspect specifications that apply to a partial view.

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

	* freeze.adb: Minor reformatting.

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

	* exp_attr.adb (Expand_Attribute, case First/Last): Don't expand in
	codepeer mode.

From-SVN: r213289
2014-07-30 16:49:38 +02:00
Arnaud Charlet
21de9325dd (Default_Attribute_Count): Replace by Max_Attribute_Count.
From-SVN: r213288
2014-07-30 16:47:53 +02:00
Ed Schonberg
18c568405a freeze.adb (Check_Expression_Function): At the freeze point of an expression function...
2014-07-30  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Check_Expression_Function): At the freeze point
	of an expression function, verify that the expression in the
	function does not contain references to any deferred constants
	that have no completion yet.
	(Freeze_Expression, Freeze_Before): call
	Check_Expression_Function.
	* a-ciorse.ads: Add Reference_Control_Type to detect tampering.
	* a-ciorse.adb: Add Adjust and Finalize routines for
	Reference_Control_Type. Use it in the construction of Reference
	and Constant_Reference values.

From-SVN: r213287
2014-07-30 16:34:38 +02:00
Robert Dewar
41a58113f8 exp_aggr.adb: Update comments.
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb: Update comments.
	* a-chtgbo.adb, a-chtgbo.ads, a-cbhase.adb, a-cbhase.ads: Minor
	reformatting.

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

	* cstand.adb (New_Standard_Entity): New version takes name
	string to call Make_Name.
	(Create_Standard): Use this routine to set name before setting other
	fields.

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

	* exp_attr.adb (Expand_Attribute, case First): Rewrite simple
	entity reference.
	(Expand_Attribute, case Last): Ditto.
	* exp_ch3.adb (Constrain_Index): New calling sequence for
	Process_Range_Expr_In_Decl.
	(Expand_N_Object_Declaration): Avoid setting Is_Known_Valid in one
	problematical case.
	* sem_ch3.adb (Constrain_Index): New calling sequence for
	Process_Range_Expr_In_Decl.
	(Set_Scalar_Range_For_Subtype): ditto.
	(Process_Range_Expr_In_Decl): Create constants to hold bounds for
	subtype.
	* sem_ch3.ads (Process_Range_Expr_In_Decl): Add Subtyp parameter.
	* sem_eval.adb (Compile_Time_Compare): Make sure we use base
	types if we are not assuming no invalid values.

From-SVN: r213286
2014-07-30 16:32:24 +02:00
Arnaud Charlet
2b4c962d78 [multiple changes]
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* clean.adb: Minor reformatting.
	* opt.ads: Minor fix to incorrect comment.

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

	* a-chtgbo.ads, a-chtgbo.adb (Delete_Node_At_Index): New
	subprogram, used by bounded hashed sets, to delete a node at
	a given index, whose element may have been improperly updated
	through a Reference_Preserving key.
	* a-cbhase.ads: Add Reference_Control_Type to package Generic_Keys.
	* a-cbhase.adb: Add Adjust and Finalize routines for
	Reference_Control_Type.
	(Delete, Insert): Raise Program_Error, not Constraint_Error,
	when operation is illegal.
	(Reference_Preserving_Key): Build aggregate for Reference_Control_Type
	* a-cmbutr.ads: Add Reference_Control_Type to detect tampering. Add
	private with_clause for Ada.Finalization.
	* a-cbmutr.adb: Add Adjust and Finalize routines for
	Reference_Control_Type. Use it in the construction of Reference
	and Constant_Reference values.

From-SVN: r213285
2014-07-30 16:29:05 +02:00
Arnaud Charlet
c98b825308 [multiple changes]
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_ch3.ads: Minor code reorganization.

2014-07-30  Pascal Obry  <obry@adacore.com>

	* clean.adb (Clean_Project): Properly check for directory
	existence before trying to enter it.

From-SVN: r213284
2014-07-30 16:26:55 +02:00
Robert Dewar
2e471ec764 sem_ch3.ads, [...]: Minor reformatting.
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.ads, prj.ads, prj-nmsc.adb: Minor reformatting.

From-SVN: r213283
2014-07-30 16:25:36 +02:00
Arnaud Charlet
43174f1527 [multiple changes]
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* par-ch5.adb (P_Sequence_Of_Statements): Properly handle
	missing semicolon after name.

2014-07-30  Pascal Obry  <obry@adacore.com>

	* prj.ads (Gprinstall_Flags): New constant.
	* prj-nmsc.adb (Check_Library_Attributes): Do not fails for
	missing library dir if Directories_Must_Exist_In_Projects
	is false.

From-SVN: r213282
2014-07-30 16:23:54 +02:00
Bob Duff
734e72dde6 a-except-2005.adb, [...]: Remove obsolete comments.
2014-07-30  Bob Duff  <duff@adacore.com>

	* a-except-2005.adb, a-except.adb: Remove obsolete comments.
	* s-traceb.ads: Updagte comments.

From-SVN: r213281
2014-07-30 16:22:38 +02:00
Robert Dewar
d6e8719dd8 checks.adb, [...]: Minor reformatting.
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* checks.adb, a-cihase.adb, a-cihase.ads, a-chtgop.adb, a-chtgop.ads,
	a-except.adb, a-except-2005.adb, a-cborse.adb, a-cborse.ads,
	a-exexda.adb, a-elchha.adb, exp_aggr.adb, a-cohase.adb: Minor
	reformatting.

From-SVN: r213280
2014-07-30 16:21:09 +02:00
Arnaud Charlet
6b6bce610b [multiple changes]
2014-07-30  Ed Schonberg  <schonberg@adacore.com>

	* a-chtgop.ads, a-chtgop.adb (Delete_Node_At_Index): New
	subprogram, used by all versions of hashed sets, to delete a node
	whose element has been improperly updated through a Reference_
	Preserving key.
	* a-cohase.adb: Remove Delete_Node, use new common procedure
	Delete_Node_At_Index.
	* a-cihase.ads: Add Reference_Control_Type to package Generic_Keys.
	* a-cihase.adb: Add Adjust and Finalize routines for
	Reference_Control_Type.
	(Reference_Preserving_Key): Build aggregate for
	Reference_Control_Type

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

	* checks.adb, checks.ads (Determine_Range_R): New procedure to
	determine the possible range of a floating-point expression.

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

	* a-cborse.ads: Add Reference_Control_Type to package Generic_Keys.
	* a-cborse.adb: Add Adjust and Finalize routines for
	Reference_Control_Type.
	(Reference_Preserving_Key): Build aggregate for
	Reference_Control_Type.
	(Delete): Check for tampering, and raise Program_Error (not
	Constraint_Error) when attempting to delete an element not in
	the set.
	(Insert): Ditto.

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

	* a-elchha.adb, a-except-2005.adb, a-except.adb, a-exexda.adb,
	* a-exextr.adb, a-exstat.adb, exp_intr.ads, s-tassta.adb:
	Exception_Information is used to produce useful debugging
	information for the programmer. However, it was also used to
	implement the stream attributes for type Exception_Occurrence. The
	latter requires a stable and portable interface, which meant
	that we couldn't include a symbolic traceback. A separate set of
	routines was used to provide symbolic tracebacks under program
	control (i.e. not automatically). The goal of this ticket is
	to provide such automatic tracebacks, so the change here is to
	split the two functionalities: Exception_Information gives the
	maximally useful information for debugging (i.e. it now includes
	a symbolic traceback when a decorator is set, and it can be
	improved freely in the future without disturbing streaming).
	Untailored_Exception_Information always uses hexadecimal addresses
	in the traceback, has a stable and portable output, and is now
	used for streaming.

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

	* exp_aggr.adb (Expand_Array_Aggregate): Add missing test
	on the target of the assignment to find out whether it
	can be directly done by the back-end.
	* exp_util.adb (Is_Possibly_Unaligned_Slice): Remove obscure test.

From-SVN: r213279
2014-07-30 16:19:54 +02:00
Robert Dewar
facfa16502 inline.adb, [...]: Minor reformatting.
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* inline.adb, a-coorse.adb, a-coorse.ads, a-cohase.adb, a-cohase.ads,
	a-tasatt.adb: Minor reformatting.

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

	* exp_ch4.adb: Minor reformatting.

From-SVN: r213278
2014-07-30 16:15:28 +02:00
Arnaud Charlet
29ad9ea529 [multiple changes]
2014-07-30  Ed Schonberg  <schonberg@adacore.com>

	* a-coorse.adb, a-coorse.ads (Generic_Keys): Add a
	Reference_Control_Type to generic package, to keep additional
	information for Reference_Types that manipulate keys. Add Adjust and
	Finalize procedures for this type.
	(Finalize): When finalizing a reference_preserving_key, verify
	that the key of the new value is equivalent to the key of the
	original element, raise Program_Error otherwise.
	(Insert): Detect tampering.
	(Reference_Preserving_Key): Build proper Reference_Control_Type,
	and update Busy and Lock bits to detect tampering.
	* a-cohase.ads: Keep with-clause private.

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

	* exp_ch4.adb (Expand_N_Op_Eq): Emit a warning when the operands
	of an equality are of an Unchecked_Union type and lack inferable
	discriminants.

From-SVN: r213277
2014-07-30 16:14:11 +02:00
Arnaud Charlet
995683a614 [multiple changes]
2014-07-30  Bob Duff  <duff@adacore.com>

	* g-exctra.adb, g-exctra.ads, s-exctra.adb, s-exctra.ads, Makefile.rtl,
	g-trasym.adb, g-trasym.ads, s-trasym.adb, s-trasym.ads: Move
	GNAT.Traceback.Symbolic and GNAT.Exception_Traces into the System
	hierarchy (System.Traceback.Symbolic and System.Exception_Traces), so
	we can call them from the runtimes. Leave renamings in place under GNAT.

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

	* inline.adb (Check_And_Build_Body_To_Inline): Include code for
	inlining in GNATprove mode.

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

	* a-cohase.adb, a-cohase.ads (Generic_Keys): Add a
	Reference_Control_Type to generic package, to keep additional
	information for Reference_Types that manipulate keys. Add Adjust and
	Finalize procedures for this type.
	(Delete_Node): New procedure called when finalizing a
	Reference_Control_Type, to remove a node whose element has been
	improperly updated through a Reference.
	(Insert): Detect tampering.
	(Reference_Preserving_Key): Build proper Reference_Control_Type,
	and update Busy and Lock bits to detect tampering.

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

	* exp_intr.ads: Minor comment fix.

From-SVN: r213276
2014-07-30 16:12:37 +02:00
Arnaud Charlet
793c5f0592 [multiple changes]
2014-07-30  Gary Dismukes  <dismukes@adacore.com>

	* exp_prag.adb, a-tags.ads: Minor typo fixes.

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

	* a-excach.adb, a-excach-cert.adb, a-except-2005.ads,
	a-except.ads, g-traceb.adb, memtrack.adb,
	s-traceb.adb, s-traceb.ads, s-traceb-hpux.adb, s-traceb-mastop.adb:
	Cleanup: Make the three versions of System.Traceback.Call_Chain
	have the same interface. Use an array for the Traceback parameter
	instead of an Address.	This will enable reduction in code
	duplication.

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

	* gnat_ugn.texi: Corrected minor textual error in description
	of switch -gnatwl.

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

	* Makefile.rtl: Sort file names.

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

	* a-tasatt.adb: Complete previous change: kill spurious warning
	on e.g. sparc, and make sure we only use the fast path when the
	alignment is compatible.

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

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark new Spec_Id as
	coming from source.

From-SVN: r213275
2014-07-30 16:00:58 +02:00
Yannick Moy
1eb31e605f inline.adb (Build_Body_To_Inline): Issue more precise messages for declarations that prevent inlining.
2014-07-30  Yannick Moy  <moy@adacore.com>

	* inline.adb (Build_Body_To_Inline): Issue more precise messages
	for declarations that prevent inlining.
	(Cannot_Inline): Change usual start of message to refer to contextual
	analysis in GNATprove mode.
	* sem_res.adb (Resolve_Call): Change usual start of message to
	refer to contextual analysis in GNATprove mode, when inlining
	not possible.

From-SVN: r213273
2014-07-30 15:58:00 +02:00
Arnaud Charlet
eb1ee7570a [multiple changes]
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb, sem_ch6.adb: Minor code reorganization.
	* inline.adb: Minor reformatting.

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

	* a-tags.ads: Add comments.

From-SVN: r213272
2014-07-30 15:57:16 +02:00
Arnaud Charlet
2178830b04 [multiple changes]
2014-07-30  Pat Rogers  <rogers@adacore.com>

	* gnat_rm.texi: Minor word error.

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

	* exp_prag.adb (Expand_Old): Insert declarationss of temporaries
	created to capture the value of the prefix of 'Old at the
	beginning of the current declarative part, to prevent data flow
	anomalies in the postcondition procedure that will follow.

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

	* debug.adb: Retire debug flag -gnatdQ.
	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check SPARK_Mode
	on decl, not on body.  Ignore predicate functions.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove use of
	debug flag -gnatdQ.  Correctly analyze SPARK_Mode on decl and
	body when generating a decl for a body on which SPARK_Mode aspect
	is given.
	* sem_prag.adb (Analyze_Pragma|SPARK_Mode): Reorder tests for
	attaching pragma to entity, to account for declaration not coming
	from source.
	* sem_res.adb (Resolve_Call): Issue warning and flag subprogram
	as not always inlined in GNATprove mode, when called in an
	assertion context.

From-SVN: r213271
2014-07-30 15:54:18 +02:00
Arnaud Charlet
d3e16619ae [multiple changes]
2014-07-30  Vincent Celier  <celier@adacore.com>

	* debug.adb: Minor comment update.

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

	* s-tasuti.adb, s-tassta.adb: Minor reformatting.
	* sprint.adb (Sprint_Node): Handle N_Contract case.
	* exp_prag.adb: Minor reformatting.
	* freeze.adb (Freeze_Entity): Check useless postcondition for
	No_Return subprogram.
	* sem_prag.adb: Minor reformatting.

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

	* a-tags.ads: Complete comments about performance.

2014-07-30  Fedor Rybin  <frybin@adacore.com>

	* gnat_ugn.texi: Adding description for --exit-status option to
	gnattest section.  Fixing index entry of --passed-tests option
	in gnattest section.

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

	* Makefile.rtl, gnat_rm.texi, i-cpp.adb, i-cpp.ads, impunit.adb,
	rtsfind.ads: Remove references to package Interfaces.CPP since this
	package is no longer needed.

From-SVN: r213270
2014-07-30 15:53:11 +02:00
Bob Duff
fccaf220f3 s-taasde.adb (Timer_Queue): Don't use a build-in-place function call to initialize the Timer_Queue.
2014-07-30  Bob Duff  <duff@adacore.com>

	* s-taasde.adb (Timer_Queue): Don't use a
	build-in-place function call to initialize the Timer_Queue.
	* s-traent.adb, s-traent.ads, s-traent-vms.adb, s-traent-vms.ads:
	Turn off polling in these units, because otherwise we get
	elaboration circularities with Ada.Exceptions when the -gnatP
	switch is used.
	* s-tassta.adb (Create_Task): Make sure independent tasks
	are created with Parent = Environment_Task. This was not true,
	for example, in s-interr.adb, when Interrupt_Manager does "new
	Server_Task"; the Server_Task had Parent = Interrupt_Manager,
	which is wrong because the master is determined by the access
	type, which is at library level.
	* s-tasuti.adb (Make_Independent): Avoid setting Parent; it is
	now set correctly by Create_Task.
	(Make_Passive): Remove the workaround for the race condition in
	Make_Independent.
	* frontend.adb (Frontend): Revert to previous method of detecting
	temporary configuration pragma files, recognizing such files by
	".tmp" in the name. This is more general than detecting pragmas
	Source_File_Name_Project, because it allows any tool to use
	this naming convention, no matter the content of the file.
	* gnat_ugn.texi: Document this naming convention.

From-SVN: r213269
2014-07-30 15:50:25 +02:00
Robert Dewar
3aac555130 exp_ch7.adb, [...]: Minor reformatting.
2014-07-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb, s-tataat.adb, s-tataat.ads, s-parame-vms-alpha.ads,
	inline.adb, s-parame-hpux.ads, exp_smem.adb, s-tasini.adb,
	s-tasini.ads, s-parame-vms-ia64.ads, s-parame.ads, s-taskin.ads,
	s-parame-vxworks.ads, a-tasatt.adb, a-tasatt.ads: Minor reformatting.
	* a-suenco.adb (Convert): Handle overlong encodings in UTF8-UTF8
	conversion.

From-SVN: r213268
2014-07-30 15:48:04 +02:00
Ed Schonberg
274d2584e5 sem_ch5.adb: Improve error recovery.
2014-07-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb: Improve error recovery.
	* inline.adb (Build_Body_To_Inline): Set Full_Analysis to false
	before analyzing the body, so that in GNATprove mode there is
	no light expansion. Whatever expansion is required by SPARK will
	be performed when analysing the inlined code.

From-SVN: r213267
2014-07-30 15:46:35 +02:00
Arnaud Charlet
2afa8fdd1b [multiple changes]
2014-07-30  Bob Duff  <duff@adacore.com>

	* s-tataat.adb, s-tataat.ads, a-tasatt.adb: Minor comment fixes.

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

	* sem_ch5.adb (Analyze_Loop_Statement): If loop has a label,
	verify that it is not hidden by an inner implicit declaration.

From-SVN: r213266
2014-07-30 15:45:14 +02:00
Arnaud Charlet
8071b77126 [multiple changes]
2014-07-30  Thomas Quinot  <quinot@adacore.com>

	* sem.ads (Scope_Table_Entry): New component Locked_Shared_Objects.
	* sem_ch8.adb (Push_Scope): Initialize Locked_Shared_Objects.
	* exp_smem.adb (Add_Shared_Var_Lock_Procs): Handle the case where
	the call returns an unconstrained type: in this case there is
	already a transient scope, and we should not establish a new one.
	* exp_ch7.adb (Insert_Actions_In_Scope_Around): New formal Clean. If
	True, also insert cleanup actions in the tree.
	(Wrap_Transient_Declaration): Call Insert_Actions_In_Scope_Around
	with Clean set True.

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

	* s-taskin.ads (Direct_Index, Direct_Index_Range,
	Direct_Attribute_Element, Direct_Attribute_Array,
	Direct_Index_Vector, Direct_Attributes, Is_Defined,
	Indirect_Attributes): Removed.	(Atomic_Address,
	Attribute_Array, Attributes): New.
	* s-tasini.ads, s-tasini.adb (Proc_T, Initialize_Attributes,
	Finalize_Attributes_Link, Initialize_Attributes_Link): Removed.
	(Finalize_Attributes): Reimplement.
	* s-tassta.adb (Create_Task): Remove call to
	Initialize_Attributes_Link (Free_Task, Vulnerable_Free_Task):
	Replace Finalize_Attributes_Link by Finalize_Attributes.
	* a-tasatt.ads, a-tasatt.adb, s-tataat.ads, s-tataat.adb:
	Reimplement from scratch, using a simpler and more efficient
	implementation.
	* s-tporft.adb (Register_Foreign_Thread): Remove now obsolete comment.
	* s-parame.ads, s-parame-hpux.ads,
	* s-parame-vms-alpha.ads, s-parame-vms-ia64.ads,
	* s-parame-vxworks.ads (Max_Attribute_Count): New, replace
	Default_Attribute_Count.

From-SVN: r213265
2014-07-30 15:43:32 +02:00
Arnaud Charlet
4bd4bb7f0c [multiple changes]
2014-07-30  Olivier Hainque  <hainque@adacore.com>

	* vxworks-ppc-link.spec: New file. Extra link
	instructions for ppc-vxworks.
	* vxworks-crtbe-link.spec: Likewise, for ZCX related support.
	* system-vxworks-ppc.ads: Adjust linker options to use spec files.
	* system-vxworks-arm.ads: Likewise.
	* gcc-interface/Makefile.in: Enable .spec files.

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

	* sem_aggr.adb: Minor comment reformatting.

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

	* sem_util.ads, sem_util.adb (Is_Junk_Name): Removed.
	* sem_warn.adb (Has_Junk_Name): New function
	(Check_References): Use Has_Junk_Name to delete junk warnings
	(Check_Unset_Reference): ditto.
	(Warn_On_Unreferenced_Entity): ditto.
	(Warn_On_Useless_Assignment): ditto.
	* sem_ch3.adb, lib-xref-spark_specific.adb, s-taprop-vxworks.adb,
	exp_ch7.adb, s-asthan-vms-alpha.adb, sem_ch10.adb, osint-c.adb,
	prj.adb, g-comlin.adb, makeutl.adb, s-tasdeb.adb, exp_intr.adb,
	s-asthan-vms-ia64.adb, prj-env.adb: Ditto.

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

	* checks.adb (Insert_Valid_Check): Do not check for the packed
	array type of a prefix that is an access type.

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

	* sem_attr.adb (Eval_Attribute): Evaluate the GNAT attribute
	Unconstrained_Array even if prefix is not frozen yet, as can
	occur with a private subtype used as a generic actual.

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

	* sem_attr.adb: Minor reformatting.

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

	* gnat_rm.texi: Corrected minor wording error in description
	of No_Exception_Registration.

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

	* einfo.ads, einfo.adb: New flag Is_Inlined_Always for use in GNATprove
	mode. Realphabetize two subprograms.
	* inline.adb (Cannot_Inline): Use Is_Inlined_Always in GNATprove mode.
	(Can_Be_Inlined_In_GNATprove_Mode): Adapt to possible Empty Body_Id.
	(Check_And_Build_Body_To_Inline): Use Is_Inlined_Always in GNATprove
	mode.
	(Expand_Inline_Call): Use Is_Inlined_Always in GNATprove mode.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not use
	Is_Inline in GNATprove mode.
	(Analyze_Subprogram_Specification):
	Set Is_Inlined_Always at subprogram entity creation.
	* sem_res.adb (Resolve_Call): Do not deal with inlining during
	pre-analysis.  Issue warning on call to possibly inlined
	subprogram when body not seen.

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

	* lib-xref.adb (Generate_Reference): Add special
	case for compiler-generated formals in GNATprove mode.

From-SVN: r213264
2014-07-30 15:40:41 +02:00
Arnaud Charlet
e687b3f535 Clean up.
From-SVN: r213263
2014-07-30 15:29:43 +02:00
Roman Gareev
6a7d8936f3 [gcc/]
* graphite-isl-ast-to-gimple.c:
	(gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
	(gcc_expression_from_isl_expression): Pass type to
	gcc_expression_from_isl_ast_expr_id.

From-SVN: r213262
2014-07-30 13:18:16 +00:00
Arnaud Charlet
480156b2a3 [multiple changes]
2014-07-30  Yannick Moy  <moy@adacore.com>

	* sem_ch6.adb: Add comments.

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

	* s-os_lib.ads (GM_Time_Of): Clarify documentation.

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

	* sem_aggr.adb, sem_res.adb: Minor reformatting.

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

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
	Bit_Order): Set Reverse_Bit_Order on the base type of the
	specified first subtype.

From-SVN: r213261
2014-07-30 14:58:03 +02:00
Arnaud Charlet
36428cc491 [multiple changes]
2014-07-30  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Expand_Inlined_Call): Use a renaming declaration
	to capture the value of actuals of a limited type rather than
	an object declaration, to prevent spurious errors when analyzing
	the inlined body.

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

	* sem_ch4.adb (Analyze_Type_Conversion): Treat an inlined body
	as an instance, and inhibit semantic checks on already analyzed
	code to prevent spurious errors.

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

	* a-exctra.ads ("="): New function, to restore compatibility.

2014-07-30  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_to_os_time): Set isdst to -1 for the mktime
	routine to use the OS dst setting.

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

	* gnat_ugn.texi: Minor correction to description of -gnatw.K.

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

	* sem_util.adb (Wrong_Type): Disable some checks equally within
	instances and within inlined bodies, to suppress spurious type
	errors on already analyzed code.
	* sem_aggr.adb (Check_Expr_OK_In_Limited_Aggregate): Expression
	is legal in an inlined body, juts as it is in an instance body.

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

	* sem_res.adb (Resolve_Unchecked_Conversion): Within an inlined
	body the operand of an unchecked conversion may be a literal, in
	which case its type is the target type of the conversion. This
	is in contrast to conversions in other contexts, where the
	operand cannot be a literal and must be resolvable independent
	of the context.

From-SVN: r213260
2014-07-30 14:56:13 +02:00
Arnaud Charlet
7c02f27b32 Minor reformatting.
From-SVN: r213259
2014-07-30 14:54:19 +02:00
Pierre-Marie de Rodat
e8fa3dcdd5 decl.c (gnat_to_gnu_entity): Create a mere scalar constant instead of a reference for a renaming of scalar...
2014-07-30  Pierre-Marie Derodat  <derodat@adacore.com>
        
	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create a
	mere scalar constant instead of a reference for a renaming of
	scalar literal.
	* gcc-interface/utils.c (renaming_from_generic_instantiation_p): New.
	* gcc-interface/gigi.h (renaming_from_generic_instantiation_p): New.

From-SVN: r213258
2014-07-30 14:52:44 +02:00