Commit Graph

128038 Commits

Author SHA1 Message Date
Marcus Shawcroft aef66c94a0 [AArch64] Fix various white space issues.
2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
	(aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
	whitespace.

From-SVN: r207258
2014-01-29 15:42:37 +00:00
Arnaud Charlet 0d66cee51d [multiple changes]
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* expander.adb: Minor reformatting.

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

	* exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to
	previous patch.

From-SVN: r207257
2014-01-29 16:39:03 +01:00
Arnaud Charlet b7cb4a617f [multiple changes]
2014-01-29  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
	that checks if an interface types defines the predefined "="
	function because the compiler was erroneously not generating the
	predefined "=" primitive as soon as the name of some interface
	primitive is "=" (formals were not checked).

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

	* expander.adb (Expander): In GNATprove mode, do not process
	transient scopes: they are in general not created in this mode,
	and an attempt to examine them will lead to constraint errors when
	processing configuration pragmas that have analyzable expressions.

From-SVN: r207256
2014-01-29 16:37:54 +01:00
Vincent Celier 35d4d8995a clean.adb (Gnatclean): Fail if main project is an aggregate project or if...
2014-01-29  Vincent Celier  <celier@adacore.com>

	* clean.adb (Gnatclean): Fail if main project is an aggregate
	project or if there is an aggregate library project in the
	project tree.
	* gnatcmd.adb: Fail if the main project is an aggregate project
	or if there is an aggegate library project in the project tree.
	* make.adb (Initialize): : Fail if main project is an aggregate
	project or if there is an aggregate library project in the
	project tree.
	* makeutl.ads (Aggregate_Libraries_In): New Boolean function.
	* prj-makr.adb (Initialize): Fail if the main project is an
	aggregate project or an aggregate library project.

From-SVN: r207255
2014-01-29 16:36:37 +01:00
Vincent Celier 88de755d13 prj-part.adb (Check_Import_Aggregate): New procedure to check if an imported project is an aggregate project.
2014-01-29  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Check_Import_Aggregate): New procedure
	to check if an imported project is an aggregate project.
	(Parse_Single_Project): Call Check_Import_Aggregate
	* projects.texi: Document that aggregate projects cannot be
	extended or imported.

From-SVN: r207254
2014-01-29 16:35:09 +01:00
Robert Dewar d0e6940256 exp_ch9.adb, [...]: Minor reformatting and code clean up.
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor
	reformatting and code clean up.
	* gnat_ugn.texi: Add documentation section on Atomic Variables
	and Optimization.

From-SVN: r207253
2014-01-29 16:34:14 +01:00
Arnaud Charlet 5627964c4a [multiple changes]
2014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb Flag264 is now unused.
	(Has_Body_References): Removed.
	(Set_Has_Body_References): Removed.
	(Write_Entity_Flags): Remove the output for flag Has_Body_References.
	* einfo.ads Update the comment on usage of attribute
	Body_References. Remove attribute Has_Body_References and its
	usage in nodes.
	(Has_Body_References): Removed along with pragma Inline.
	(Set_Has_Body_References): Removed along with pragma Inline.
	* sem_prag.adb (Analyze_Global_Item): Move the call to
	Record_Possible_Body_Reference in the state related checks
	section. Add a comment intended function.
	(Analyze_Input_Output): Move the call to Record_Possible_Body_Reference
	in the state related checks section. Add a comment intended function.
	(Analyze_Refinement_Clause): Cleanup the illegal body reference
	reporting. Add a comment on timing of error reporting.
	(Record_Possible_Body_Reference): Reimplement the routine.

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

	* makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for
	unit-based languages.
	(Mains.Complete_Mains.Do_Complete): Use the source file project
	tree when calling Find_File_Add_Extension. Use the correct
	project name when reporting an error.

From-SVN: r207252
2014-01-29 16:32:42 +01:00
Hristian Kirtchev d7af5ea5e1 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb Add an entry for aspect Part_Of in table
	Canonical_Aspect.
	* aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id,
	Aspect_Argument, Aspect_Names and Aspect_Delay.
	* atree.h Define Elist9.
	* atree.adb (Elist9): New routine.
	(Set_Elist9): New routine.
	* atree.ads (Elist9): New routine.
	(Set_Elist9): New routine.
	* einfo.adb Add Part_Of_Constituents and Encapsulating_State to
	the list of node usage.  Remove Refined_State from the list of
	node usage.
	(Encapsulating_State): New routine.
	(Get_Pragma):
	Handle pragma Part_Of; (Part_Of_Constituents): New routine.
	(Refined_State): Removed.
	(Set_Encapsulating_State): New routine.
	(Set_Part_Of_Constituents): New routine.
	(Set_Refined_State): Removed.
	(Write_Field9_Name): Add an entry
	for Part_Of_Constituents (Write_Field10_Name): Add an entry for
	Encapsulating_State. Remove the entry for Refined_State.
	* einfo.ads Add new attributes Encapsulating_State
	and Part_Of_Constituents alond with their usage in
	entities. Remove attribute Refined_State along with its
	usage in entities.
	(Encapsulating_State): New routine and
	pragma Inline.	(Get_Pragma): Update the comment on usage.
	(Part_Of_Constituents): New routine and pragma Inline.
	(Refined_State): Removed along with pragma Inline.
	(Set_Encapsulating_State): New routine and pragma Inline.
	(Set_Part_Of_Constituents): New routine and pragma Inline.
	(Set_Refined_State): Removed along with pragma Inline.
	* par-prag.adb Pragma Part_Of does not need any special processing
	by the parser.
	* sem_ch3.adb (Analyze_Declarations): Remove local variables
	Body_Id and Prag. Call separate routines to analyze the
	contract of a package [body].
	(Analyze_Object_Contract):
	Update the comment on usage. Remove local variables
	Items and Nam. Use Get_Pragma rather than traversing the
	classification list.  Verify whether the lack of indicator
	Part_Of agrees with the placement of the variable in state space.
	(Analyze_Object_Declaration): Initialize the encapsulating state
	of a variable.	(Requires_State_Refinement): Moved to sem_util.
	* sem_ch7.adb (Analyze_Package_Body_Contract): New routine.
	(Analyze_Package_Contract): New routine.
	* sem_ch7.ads (Analyze_Package_Body_Contract): New routine.
	(Analyze_Package_Contract): New routine.
	* sem_ch10.adb (Decorate_State): Initialize the encapsulating
	state and Part_Of constituents.
	* sem_ch13.adb (Analyze_Aspect_Specifications):
	Add processing for aspect Part_Of. Update all
	calls to Decorate_Delayed_Aspect_And_Pragma.
	(Check_Aspect_At_Freeze_Point): Aspect Part_Of does
	not need any special processing at freeze time.
	(Decorate_Delayed_Aspect_And_Pragma): Renamed to
	Decorate_Aspect_And_Pragma.  Add formal parameter Delayed and
	update the associated comment.
	* sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags.
	(Analyze_Abstract_State): Add new global variable State_Id. Remove
	local constants Errors and Loc. Remove local variables Is_Null
	and State_Nam. Create the entity of the abstract state on the
	spot, before all remaining checks are performed. Verify that a
	missing Part_Of option agrees with the placement of the abstract
	state within the state space.
	(Analyze_Depends_In_Decl_Part):
	Add new global variables Constits_Seen and States_Seen. Check
	that a state and a corresponding constituent do not appear
	in pragma [Refined_]Depends.
	(Analyze_Global_In_Decl_Part):
	Add new global variables Constits_Seen and States_Seen. Check
	that a state and a corresponding constituent do not appear
	in pragma [Refined_]Global.
	(Analyze_Global_Item):
	Remove the now obsolete code that deals with Part_Of.
	Add the entity of the global item to the list of processed
	items.	(Analyze_Initializes_In_Decl_Part): Add new global
	variables Constits_Seen and States_Seen. Check that a state
	and a corresponding constituent do not appear in pragma
	Initializes.
	(Analyze_Initialization_Item): Add the entity
	of the initialization item to the list of processed items.
	(Analyze_Input_Item): Add the entity of the initialization
	item to the list of processed items.
	(Analyze_Input_Output):
	Remove the now obsolete code that deals with Part_Of.  Add the
	entity of the input/output to the list of processed items.
	(Analyze_Part_Of): New routine.
	(Analyze_Part_Of_Option): Remove
	local constant Par_State. Add local constant Encaps and local
	variables Encaps_Id and Legal. Use Analyze_Part of to analyze
	the option. Turn the related state into a Part_Of constituent
	if the option is legal.
	(Analyze_Pragma): Add processing
	for pragma Part_Of.
	(Analyze_Refined_State_In_Decl_Part):
	Remove global constants Pack_Body and Spec_Id. Remove
	global variables Abstr_States and Hidden_States. Add new
	global variables Available_States, Body_Id, Body_States and
	Spec_Id. Add new local constant Body_Decl. Reimplement the
	logic that extracts the states available for refinement from
	the related package and the body hidden states of the said
	package.
	(Analyze_Refinement_Clause): Add local variable Part_Of_Constits.
	(Check_Applicable_Policy): Alphabetize body.
	(Check_Dependency_Clause): Replace Refined_State
	with Encapsulating_State.
	(Check_Matching_Constituent):
	Reimplement the logic that determines whether an item is a valid
	/ invalid constituent of the current refined state. Return when
	a construct does not denote a valid abstract state. Extract the
	list of Part_Of constituents for further analysis. Check that all
	Part_Of constituents of a state have been used in its refinement.
	(Check_Matching_State): Update the comment on usage. Operate
	on the list of available states.
	(Check_Missing_Part_Of): New routine.
	(Check_Refined_Global_Item): Replace Refined_State
	with Encapsulating_State.
	(Check_State_And_Constituent_Use): New routine.
	(Create_Abstract_State): New routine.
	(Is_Matching_Input): Replace Refined_State with Encapsulating_State.
	(Is_Part_Of): Removed.
	(Collect_Body_States): New routine.
	(Collect_Constituent): Replace Refined_State with Encapsulating_State.
	(Collect_Hidden_States): Removed.
	(Report_Unrefined_States): Change the profile of the procedure along
	with the comment on usage.
	(Report_Unused_Constituents): New routine.
	(Report_Unused_Hidden_States): Removed.
	(Report_Unused_States): New routine.
	* sem_prag.ads (Check_Missing_Part_Of): New routine.
	* sem_util.adb (Add_Contract_Item): Pragma Part_Of can now
	appear in the classification pragmas of a package instantiation
	or a variable.
	(Find_Placement_In_State_Space): New routine.
	(Is_Child): Removed.
	(Is_Child_Or_Sibling): Remove formal
	parameter Private_Child. Remove the private child checks.
	(Requires_State_Refinement): Moved from sem_ch3.
	* sem_util.ads Add new type State_Space_Kind along with
	comment on its usage and values.
	(Add_Contract_Item): Update the comment on usage.
	(Find_Body_Discriminal): Alphabetize spec.
	(Find_Placement_In_State_Space): New routine.
	(Is_Child_Or_Sibling): Remove formal parameter Private_Child
	and update the comment on usage.
	(Requires_State_Refinement): Moved from sem_ch3.
	* sinfo.ads: Update the documentation of N_Contract.
	* snames.ads-tmpl The predefined name for Part_Of is now used
	to denote a pragma. Add Pragma_Id for Part_Of.

From-SVN: r207251
2014-01-29 16:30:21 +01:00
Arnaud Charlet 0830210cff [multiple changes]
2014-01-29  Emmanuel Briot  <briot@adacore.com>

	* s-regexp.adb (Create_Secondary_Table): Automatically grow the state
	machine as needed.
	(Dump): New subprogram.

2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add
	Expand_Entry_Declaration to factorize code.

From-SVN: r207250
2014-01-29 16:27:54 +01:00
Jonathan Wakely 85c13695d2 Fix ChangeLog date of my previous commit.
From-SVN: r207249
2014-01-29 15:26:23 +00:00
Ed Schonberg 1ae706185e checks.adb: minor clarification.
2014-01-29  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb: minor clarification.
	* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit
	search for primitive operations to the entities that immediately
	follow the type declaration.

From-SVN: r207248
2014-01-29 16:26:18 +01:00
Arnaud Charlet cca7f1076a [multiple changes]
2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Build_Protected_Entry): Do not call
	Complete_Entry_Body anymore.
	* rtsfind.ads (RE_Complete_Single_Entry_Body): Remove.
	* s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove.

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

	* s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty
	string when the Name input bigger than allowed. Adapt the function
	specification.

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

	* checks.adb (Install_Null_Excluding_Check): Do not emit warning
	if expression is within a case_expression of if_expression.

From-SVN: r207247
2014-01-29 16:25:11 +01:00
Robert Dewar 443dd772d6 exp_ch9.adb, inline.ads: Minor reformatting.
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, inline.ads: Minor reformatting.

From-SVN: r207246
2014-01-29 16:23:07 +01:00
Arnaud Charlet 4043fd0b3b [multiple changes]
2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions.

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

	* inline.ads (Pending_Body_Info): Add SPARK_Mode and
	SPARK_Mode_Pragma components to be able to analyze generic
	instance.
	* sem_ch12.adb (Analyze_Package_Instantiation,
	Inline_Instance_Body, Need_Subprogram_Instance_Body,
	Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation
	for future analysis of the instance.
	(Instantiate_Package_Body,
	Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode
	from instantiation to analyze the instance.

From-SVN: r207244
2014-01-29 16:21:59 +01:00
Arnaud Charlet cf3e6845fd [multiple changes]
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code
	reorganization.

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

	* gnat_rm.texi: Update description of SPARK_Mode pragma.

2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries.

From-SVN: r207243
2014-01-29 16:20:44 +01:00
Arnaud Charlet f90d14ac69 [multiple changes]
2014-01-29  Thomas Quinot  <quinot@adacore.com>

	* sem_ch4.adb (Find_Component_In_Instance): Update comment.

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

	* exp_util.adb (Build_Task_Image_Prefix): Indicate that the
	resulting string is an internal entity. and thus requires no
	initialization. This is relevant when Initialize_ Scalars is
	enabled, because the resultant spurious initialization may lead to
	secondary stack anomalies that produce a mangled name for a task.

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

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode
	not inherited from spec anymore. Check consistency
	rules after processing of declarations.
	* sem_ch7.adb (Analyze_Package_Body_Helper): SPARK_Mode not inherited
	from spec anymore. Check consistency rules after processing of
	declarations.
	(Analyze_Package_Declaration): Set SPARK_Mode only for non-generic
	packages.
	* sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new
	consistency rules.

From-SVN: r207242
2014-01-29 16:19:01 +01:00
Jonathan Wakely 8a972abdd9 re PR libstdc++/59829 (Calling vector::data() occurs undefined behavior when the vector is empty)
PR libstdc++/59829
	* include/bits/stl_vector.h (vector::data()): Call _M_data_ptr.
	(vector::_M_data_ptr): New overloaded functions to ensure empty
	vectors do not dereference the pointer.
	* testsuite/23_containers/vector/59829.cc: New.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r207241
2014-01-29 14:57:42 +00:00
Jonathan Wakely 200674232e alloc_traits.h (allocator_traits::_S_allocate): Do not use varargs when argument could be non-POD.
* include/bits/alloc_traits.h (allocator_traits::_S_allocate): Do
	not use varargs when argument could be non-POD.
	(__alloctr_rebind_helper): Eliminate static const bool member by
	using true_type and false_type.
	(allocator_traits::__allocate_helper): Likewise.
	(allocator_traits::__construct_helper): Likewise.
	(allocator_traits::__destroy_helper): Likewise.
	(allocator_traits::__maxsize_helper): Likewise.
	(allocator_traits::__select_helper): Likewise.
	* include/bits/ptr_traits.h (__ptrtr_rebind_helper): Likewise.
	* include/bits/stl_tree.h (_Rb_tree::operator=(const _Rb_tree&)):
	Remove redundant condition.
	* include/bits/stl_vector.h (vector::operator=(const vector&)):
	Likewise.
	(_Vector_impl::_M_allocate, _Vector_impl::_M_deallocate): Use
	indirection through __alloc_traits.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal):
	Eliminate static const bool members by using true_type and false_type.
	(__gnu_cxx::__alloc_traits::__is_custom_pointer): Optimize.
	* testsuite/util/testsuite_allocator.h (PointerBase): Define.
	* testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc:
	New.
	* testsuite/20_util/allocator_traits/requirements/typedefs2.cc: New.

From-SVN: r207240
2014-01-29 14:57:35 +00:00
Richard Biener 77574c3534 re PR middle-end/58742 (pointer arithmetic simplification)
2014-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_pointerplus): Rename to
	associate_pointerplus_align.
	(associate_pointerplus_diff): New function.
	(associate_pointerplus): Likewise.  Call associate_pointerplus_align
	and associate_pointerplus_diff.

	* gcc.dg/pr58742-1.c: New testcase.
	* gcc.dg/pr58742-2.c: Likewise.
	* gcc.dg/pr58742-3.c: Likewise.

From-SVN: r207239
2014-01-29 14:45:44 +00:00
Richard Biener 15b25b242b lto-streamer.h (LTO_major_version): Bump to 3.
2014-01-29  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 3.
	(LTO_minor_version): Reset to 0.

From-SVN: r207238
2014-01-29 14:19:23 +00:00
Renlin Li eb6006ad65 [ARM] Add -march=armv7ve
gcc/
2014-01-29  Renlin Li  <Renlin.Li@arm.com>

	* config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
	* config/arm/arm.c (FL_FOR_ARCH7VE): New.
	(arm_file_start): Generate correct asm header for armv7ve.
	* config/arm/bpabi.h: Add multilib support for armv7ve.
	* config/arm/driver-arm.c: Change the architectures of cortex-a7
	and cortex-a15 to armv7ve.
	* config/arm/t-aprofile: Add multilib support for armv7ve.
	* doc/invoke.texi: Document -march=armv7ve.

gcc/testsuite/
2014-01-29  Renlin Li  <Renlin.Li@arm.com>

	* gcc.target/arm/ftest-armv7ve-arm.c: New.
	* gcc.target/arm/ftest-armv7ve-thumb.c: New.
	* lib/target-supports.exp: New armfunc, armflag and armdef for armv7ve.

From-SVN: r207237
2014-01-29 13:46:39 +00:00
Jason Merrill dc9e1b866b re PR c++/59315 (g++.dg/warn/Wunused-3.C FAILs with -fno-use-cxa-atexit)
PR c++/59315
	* decl.c (cxx_maybe_build_cleanup): Call mark_used.

From-SVN: r207236
2014-01-29 08:40:49 -05:00
Paolo Carlini 4ca56230c6 re PR c++/58702 (ICE with undeclared variable in OpenMP reduction clause)
/cp
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58702
	* semantics.c (finish_omp_reduction_clause): Check type for
	error_mark_node.

/testsuite
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58702
	* g++.dg/gomp/pr58702.C: New.

From-SVN: r207235
2014-01-29 13:36:22 +00:00
Dodji Seketeli 72ca89097c Fix test c-c++-common/cpp/warning-zero-location-2.c
gcc/testsuite/ChangeLog:

	* c-c++-common/cpp/warning-zero-location-2.c: Fix error message
	specifier.

Signed-off-by: Dodji Seketeli <dodji@seketeli.org>

From-SVN: r207234
2014-01-29 12:27:32 +01:00
Richard Biener 4bfb2fa258 re PR middle-end/58742 (pointer arithmetic simplification)
2014-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_plusminus): Return true
	if we changed sth, defer EH cleanup to ...
	(ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
	(simplify_mult): New function.

From-SVN: r207232
2014-01-29 11:08:59 +00:00
Jakub Jelinek 09b22f48d4 re PR middle-end/59917 (ICE in calc_dfs_tree, at dominance.c:401)
PR middle-end/59917
	PR tree-optimization/59920
	* tree.c (build_common_builtin_nodes): Remove
	__builtin_setjmp_dispatcher initialization.
	* omp-low.h (make_gimple_omp_edges): Add a new int * argument.
	* profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
	instead of gsi_after_labels + manually skipping debug stmts.
	Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
	ignore bbs with IFN_ABNORMAL_DISPATCHER.
	* tree-inline.c (copy_edges_for_bb): Remove
	can_make_abnormal_goto argument, instead add abnormal_goto_dest
	argument.  Ignore computed_goto_p stmts.  Don't call
	make_abnormal_goto_edges.  If a call might need abnormal edges
	for non-local gotos, see if it already has an edge to
	IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
	with true argument, don't do anything then, otherwise add
	EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
	(copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
	caller.
	* gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
	(lower_function_body): Don't emit __builtin_setjmp_dispatcher.
	(lower_stmt): Don't set data->calls_builtin_setjmp.
	(lower_builtin_setjmp): Adjust comment.
	* builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
	* tree-cfg.c (found_computed_goto): Remove.
	(factor_computed_gotos): Remove.
	(make_goto_expr_edges): Return bool, true for computed gotos.
	Don't call make_abnormal_goto_edges.
	(build_gimple_cfg): Don't set found_computed_goto, don't call
	factor_computed_gotos.
	(computed_goto_p): No longer static.
	(make_blocks): Don't set found_computed_goto.
	(get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
	(make_edges): If make_goto_expr_edges returns true, push bb
	into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
	instead of calling make_abnormal_goto_edges push bb into ab_edge_call
	vector.  Record mapping between bbs and OpenMP regions if there
	are any, adjust make_gimple_omp_edges caller.  Call
	handle_abnormal_edges.
	(make_abnormal_goto_edges): Remove.
	* tree-cfg.h (make_abnormal_goto_edges): Remove.
	(computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
	* internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
	* builtins.c (expand_builtin): Don't handle
	BUILT_IN_SETJMP_DISPATCHER.
	* internal-fn.def (ABNORMAL_DISPATCHER): New.
	* omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
	filling *region also set *region_idx to (*region)->entry->index.

	* gcc.dg/pr59920-1.c: New test.
	* gcc.dg/pr59920-2.c: New test.
	* gcc.dg/pr59920-3.c: New test.
	* c-c++-common/gomp/pr59917-1.c: New test.
	* c-c++-common/gomp/pr59917-2.c: New test.

From-SVN: r207231
2014-01-29 12:02:46 +01:00
Jakub Jelinek 42eb8bd179 re PR other/58712 (issues found by --enable-checking=valgrind)
PR other/58712
	* read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
	For REGs set ORIGINAL_REGNO.

From-SVN: r207230
2014-01-29 11:35:15 +01:00
Bingfeng Mei 4a271b7ef0 md.texi: Mention that a target shouldn't implement vec_widen_(s|u)mul_even/odd pair if...
2014-01-29  Bingfeng Mei  <bmei@broadcom.com>

	* doc/md.texi: Mention that a target shouldn't implement 
	vec_widen_(s|u)mul_even/odd pair if it is less efficient
	than hi/lo pair.

From-SVN: r207228
2014-01-29 10:10:20 +00:00
Jakub Jelinek 3d54b29d70 re PR tree-optimization/59594 (wrong code (by tree vectorizer) at -O3 on x86_64-linux-gnu)
PR tree-optimization/59594
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
	a copy of the datarefs vector rather than the vector itself.

	* gcc.dg/vect/no-vfa-vect-depend-2.c: New test.
	* gcc.dg/vect/no-vfa-vect-depend-3.c: New test.
	* gcc.dg/vect/pr59594.c: New test.

From-SVN: r207225
2014-01-29 10:27:43 +01:00
Jason Merrill 15b31f8c7e re PR c++/59791 (ICE: Error reporting routines re-entered. with -fcompare-debug)
PR c++/59791
	* pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
	(tsubst_copy): Use it if lookup fails.

From-SVN: r207224
2014-01-28 23:10:58 -05:00
GCC Administrator 52c02a46e8 Daily bump.
From-SVN: r207223
2014-01-29 00:17:01 +00:00
Jason Merrill 4c690cea4c re PR c++/59818 (Bogus error: call of overloaded .... is ambiguous)
PR c++/59818
	* pt.c (tsubst_function_type): Make sure we keep the same function
	quals.

From-SVN: r207215
2014-01-28 17:00:05 -05:00
Ian Lance Taylor 19cef1c1f1 compiler: Put nointerface methods in unique sections.
From-SVN: r207214
2014-01-28 21:44:53 +00:00
Jason Merrill 0f59a31da8 re PR c++/58701 ([c++11] ICE initializing member of static union)
PR c++/58701
	* semantics.c (build_anon_member_initialization): Stop walking
	when we run out of COMPONENT_REFs.

From-SVN: r207209
2014-01-28 16:04:44 -05:00
Jason Merrill 3807059e82 re PR c++/58632 (ICE reusing template parameter name as class name)
PR c++/58632
	* decl.c (lookup_and_check_tag): Ignore template parameters if
	scope == ts_current.
	* pt.c (check_template_shadow): Don't complain about the injected
	class name.

From-SVN: r207208
2014-01-28 16:04:29 -05:00
Paul Thomas 1b2b9969c8 accidental addition
From-SVN: r207205
2014-01-28 20:12:40 +00:00
Paul Thomas 6a4b5f71c9 re PR fortran/59414 ([OOP] ICE in in gfc_conv_expr_descriptor on ALLOCATE inside SELECT TYPE)
2014-01-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/59414
	* trans-stmt.c (gfc_trans_allocate): Before the pointer
	assignment to transfer the source _vptr to a class allocate
	expression, the final class reference should be exposed. The
	tail that includes the _data and array references is stored.
	This reduced expression is transferred to 'lhs' and the _vptr
	added. Then the tail is restored to the allocate expression.

2014-01-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/59414
	* gfortran.dg/allocate_class_3.f90 : New test

From-SVN: r207204
2014-01-28 20:10:22 +00:00
Thomas Schwinge e191f50260 Avoid "'dc' may be uninitialized" warning.
libiberty/
	* cp-demangle.c (d_demangle_callback): Put an abort call in place,
	to help the compiler.

From-SVN: r207200
2014-01-28 20:06:44 +01:00
Kazu Hirata d2ca60c021 * gcc.target/arm/thumb-cbranchqi.c: Accept bls also.
From-SVN: r207199
2014-01-28 17:35:37 +00:00
Jason Merrill 1377eb9a03 * decl.c (duplicate_decls): Tweak.
From-SVN: r207198
2014-01-28 12:06:47 -05:00
Jason Merrill 2e5e7103a3 re PR c++/53756 ([C++1y] ICE: in gen_type_die_with_usage, at dwarf2out.c:18774 with -g and operator auto ())
PR c++/53756
gcc/
	* dwarf2out.c (auto_die): New static.
	(gen_type_die_with_usage): Handle C++1y 'auto'.
	(gen_subprogram_die): If in-class DIE had 'auto', emit type again
	on definition.
gcc/cp/
	* mangle.c (write_unqualified_name): Handle operator auto.

From-SVN: r207197
2014-01-28 12:06:40 -05:00
H.J. Lu d5d618b5da Add -m16 support for x86
The .code16gcc directive was added to binutils back in 1999:

---
   '.code16gcc' provides experimental support for generating 16-bit code
from gcc, and differs from '.code16' in that 'call', 'ret', 'enter',
'leave', 'push', 'pop', 'pusha', 'popa', 'pushf', and 'popf'
instructions default to 32-bit size.  This is so that the stack pointer
is manipulated in the same way over function calls, allowing access to
function parameters at the same stack offsets as in 32-bit mode.
'.code16gcc' also automatically adds address size prefixes where
necessary to use the 32-bit addressing modes that gcc generates.
---

It encodes 32-bit assembly instructions generated by GCC in 16-bit format
so that GCC can be used to generate 16-bit instructions.  To do that, the
.code16gcc directive must be placed at the very beginning of the assembly
code.  This patch adds -m16 to x86 backend by:

1. Add -m16 and make it mutually exclusive with -m32, -m64 and -mx32.
2. Treat -m16 like -m32 so that --32 is passed to assembler.
3. Output .code16gcc at the very beginning of the assembly code.
4. Turn off 64-bit ISA when -m16 is used.

	PR target/59672
	* config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
	(SPEC_X32): Likewise.
	(SPEC_64): Likewise.
	* config/i386/i386.c (ix86_option_override_internal): Turn off
	OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
	for TARGET_16BIT.
	(x86_file_start): Output .code16gcc for TARGET_16BIT.
	* config/i386/i386.h (TARGET_16BIT): New macro.
	(TARGET_16BIT_P): Likewise.
	* config/i386/i386.opt: Add m16.
	* doc/invoke.texi: Document -m16.

From-SVN: r207196
2014-01-28 08:22:45 -08:00
Dodji Seketeli 367c82866e PR preprocessor/59935 - caret diagnostics crashes on non-file locations
gcc/ChangeLog

	* input.c (location_get_source_line): Bail out on when line number
	is zero, and test the return value of
	lookup_or_add_file_to_cache_tab.

gcc/testsuite/ChangeLog

	* c-c++-common/cpp/warning-zero-location.c: New test.
	* c-c++-common/cpp/warning-zero-location-2.c: Likewise.

Signed-off-by: Dodji Seketeli <dodji@seketeli.org>

From-SVN: r207195
2014-01-28 16:03:19 +01:00
Richard Biener 07ec81f958 re PR middle-end/58742 (pointer arithmetic simplification)
2014-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_plusminus): Handle
	pointer subtraction of the form (T)(P + A) - (T)P.

From-SVN: r207194
2014-01-28 14:53:52 +00:00
Kyrylo Tkachov 5facb998d9 arm.c (arm_new_rtx_costs): Remove useless statement at const_int_cost.
* config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
	at const_int_cost.

From-SVN: r207193
2014-01-28 14:17:09 +00:00
Richard Biener e04faf242e revert: re PR middle-end/45364 (Compiling wine's directx.c with -O1 -g takes a very long time)
2014-01-28  Richard Biener  <rguenther@suse.de>

	Revert
	2014-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/45364
	PR rtl-optimization/59890
	* var-tracking.c (local_get_addr_clear_given_value): Handle
	already cleared slot.
	(val_reset): Handle not allocated local_get_addr_cache.
	(vt_find_locations): Use post-order on the inverted CFG.

From-SVN: r207182
2014-01-28 13:13:54 +00:00
Richard Biener 6593260b3a tree-data-ref.h (ddr_is_anti_dependent, [...]): Remove.
2014-01-28  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps):
	Remove.

From-SVN: r207181
2014-01-28 12:49:08 +00:00
Jonathan Wakely 156b60e0b9 re PR libstdc++/59656 (weak_ptr::lock function crashes when compiling with -fno-exceptions flag)
2014-01-28  Jonathan Wakely  <jwakely@redhat.com>
	    Kyle Lippincott  <spectral@google.com>

	PR libstdc++/59656
	* include/bits/shared_ptr.h (shared_ptr): Add new non-throwing
	constructor and grant friendship to weak_ptr.
	(weak_ptr::lock()): Use new constructor.
	* include/bits/shared_ptr_base.h
	(_Sp_counted_base::_M_add_ref_lock_nothrow()): Declare new function
	and define specializations.
	(__shared_count): Add new non-throwing constructor.
	(__shared_ptr): Add new non-throwing constructor and grant friendship
	to __weak_ptr.
	(__weak_ptr::lock()): Use new constructor.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.

Co-Authored-By: Kyle Lippincott <spectral@google.com>

From-SVN: r207180
2014-01-28 10:23:27 +00:00
Richard Biener 9ec2d2c168 re PR middle-end/45364 (Compiling wine's directx.c with -O1 -g takes a very long time)
2014-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/45364
	PR rtl-optimization/59890
	* var-tracking.c (local_get_addr_clear_given_value): Handle
	already cleared slot.
	(val_reset): Handle not allocated local_get_addr_cache.
	(vt_find_locations): Use post-order on the inverted CFG.

From-SVN: r207172
2014-01-28 09:02:59 +00:00
Alan Modra 2ceb362d0a Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
* Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
	* configure.ac <recursive call for build != host>: Define
	GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
	and LD_FOR_BUILD too.
	* configure: Regenerate.

From-SVN: r207171
2014-01-28 17:38:22 +10:30