Commit Graph

122293 Commits

Author SHA1 Message Date
Richard Biener
31348d52c0 re PR middle-end/56483 (LTO issue with expanding GIMPLE_COND)
2013-03-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/56483
	* cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
	and implement properly.
	* gimple.h (gimple_cond_single_var_p): Remove.

From-SVN: r196776
2013-03-18 10:29:43 +00:00
Richard Biener
fcac74a177 tree-data-ref.h (find_data_references_in_loop): Declare.
2013-03-18  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (find_data_references_in_loop): Declare.
	* tree-data-ref.c (get_references_in_stmt): Use a stack
	vector pre-allocated in the callers.
	(find_data_references_in_stmt): Adjust.
	(graphite_find_data_references_in_stmt): Likewise.
	(create_rdg_vertices): Likewise.
	(find_data_references_in_loop): Export.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
	Compute dependences here...
	(vect_analyze_data_refs): ...not here.  When we encounter
	a non-vectorizable data reference in basic-block vectorization
	truncate the data reference vector.  Do not bother to
	fixup data-dependence information for gather loads.
	* tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
	of data references, as reported.

From-SVN: r196775
2013-03-18 10:25:42 +00:00
Paolo Carlini
ad6fdc1976 PR libstdc++/55977 (partial, std::vector and std::deque bits)
2013-03-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/55977 (partial, std::vector and std::deque bits)
	* include/bits/stl_vector.h (_M_range_initialize(_InputIterator,
	_InputIterator, std::input_iterator_tag)): Use emplace_back.
	* include/bits/deque.tcc (_M_range_initialize(_InputIterator,
	_InputIterator, std::input_iterator_tag)): Likewise.
	* testsuite/23_containers/vector/cons/55977.cc: New.
	* testsuite/23_containers/deque/cons/55977.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r196774
2013-03-18 10:15:56 +00:00
Tobias Burnus
9fa5223135 gfortran.h (gfc_option_t): Remove flag_whole_file.
2013-03-18  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Remove flag_whole_file.
        * invoke.texi (-fno-whole-file): Remove.
        * lang.opt (fwhole-file): Change to Ignore.
        * options.c (gfc_init_options, gfc_post_options,
        gfc_handle_option): Remove !flag_whole_file handling
        * parse.c (resolve_all_program_units,
        * translate_all_program_units,
        gfc_parse_file): Ditto.
        * resolve.c (resolve_global_procedure): Ditto.
        * trans-decl.c (gfc_get_symbol_decl,
        * gfc_get_extern_function_decl,
        gfc_create_module_variable): Ditto.
        * trans-types.c (gfc_get_derived_type): Ditto.

From-SVN: r196773
2013-03-18 10:50:23 +01:00
Richard Biener
0d5a1b5694 re PR tree-optimization/3713 (Pointers to functions or member functions are not folded or inlined)
2013-03-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/3713
	* tree-ssa-sccvn.c (visit_copy): Simplify.  Always propagate
	has_constants and expr.
	(stmt_has_constants): Properly valueize SSA names when deciding
	whether the stmt has constants.

	* g++.dg/ipa/devirt-12.C: New testcase.

From-SVN: r196771
2013-03-18 08:53:42 +00:00
Richard Biener
789c34e3c7 tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the whole function when there is nothing to do.
2013-03-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
	whole function when there is nothing to do.
	* tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
	* tree-vectorizer.c (vectorize_loops): Update virtual and
	loop-closed SSA once.
	* tree-vect-loop.c (vect_transform_loop): Do not update SSA here.

From-SVN: r196770
2013-03-18 08:50:35 +00:00
Richard Biener
076b460557 re PR c/56113 (out of memory when compiling a function with many goto labels (50k > ))
2013-03-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/56113
	* domwalk.c (bb_postorder): New global static.
	(cmp_bb_postorder): New function.
	(walk_dominator_tree): Replace scheme imposing an order for
	visiting dominator sons by one sorting them at the time they
	are pushed on the stack.

From-SVN: r196769
2013-03-18 08:46:44 +00:00
Richard Biener
bdb01696ea re PR middle-end/39326 (Segmentation fault with -O1, out of memory with -O2)
2013-03-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/39326
	* tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
	(struct mem_ref): Replace mem member with ao_ref typed member.
	(MEM_ANALYZABLE): Adjust.
	(memref_eq): Likewise.
	(mem_ref_alloc): Likewise.
	(gather_mem_refs_stmt): Likewise.
	(mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
	(execute_sm_if_changed_flag_set): Adjust.
	(execute_sm): Likewise.
	(ref_always_accessed_p): Likewise.
	(refs_independent_p): Likewise.
	(can_sm_ref_p): Likewise.

From-SVN: r196768
2013-03-18 08:42:57 +00:00
Jakub Jelinek
12d2dc5e67 re PR c/56566 (bogus "is narrower than values of its type" warning)
PR c/56566
	* tree.c (tree_int_cst_min_precision): For integer_zerop (value)
	return 1 even for !unsignedp.

	* c-c++-common/pr56566.c: New test.

From-SVN: r196767
2013-03-18 08:10:33 +01:00
Jason Merrill
136357ac8d re PR c++/54359 ([C++0x] decltype in member function's trailing return type when defined outside of class)
PR c++/54359
	PR c++/56639
	* parser.c (cp_parser_direct_declarator): Bail if we see a
	qualified-id not at namespace scope.

From-SVN: r196765
2013-03-17 23:41:10 -04:00
Jason Merrill
d0d475ef30 * g++.dg/template/abstract-dr337.C: XFAIL.
From-SVN: r196764
2013-03-17 23:40:16 -04:00
GCC Administrator
d696777ea7 Daily bump.
From-SVN: r196762
2013-03-18 00:22:10 +00:00
Jason Merrill
df5c5f7828 re PR c++/17232 ([DR 1640] classes and class template specializations treated differently w.r.t. core issue #337)
PR c++/17232
	PR c++/56642
	* typeck2.c (abstract_virtuals_error_sfinae): Revert complete_type
	change for now.

From-SVN: r196758
2013-03-17 16:32:17 -04:00
Uros Bizjak
286fb67781 i386.md (isa): Add x64 and nox64.
* config/i386/i386.md (isa): Add x64 and nox64.
	(enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
	(*pushtf): Enable *roF alternative for x64 isa only.
	(*pushxf): Merge with *pushxf_nointeger.  Use Yx*r constraint. Set
	mode attribute of integer alternatives to DImode for TARGET_64BIT.
	(*pushdf): Merge with *pushdf_rex64.  Use x64 and nox64 isa attributes.
	(*movtf_internal): Merge from *movtf_internal_rex64 and
	*movtf_internal_sse.  Use x64 and nox64 isa attributes.
	(*movxf_internal): Merge with *movxf_internal_rex64.  Use x64 and
	nox64 isa attributes.
	(*movdf_internal): Merge with *movdf_internal_rex64.  Use x64 and
	nox64 isa attributes.
	* config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.

From-SVN: r196757
2013-03-17 20:33:40 +01:00
Uros Bizjak
88b97037e2 alpha.c (TARGET_LRA_P): New define.
* config/alpha/alpha.c (TARGET_LRA_P): New define.

From-SVN: r196756
2013-03-17 20:01:36 +01:00
Paolo Carlini
b4904956fa re PR libstdc++/55979 ([C++11] std::list range construction imposes unnecessary conversion constraints)
2013-03-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/55979
	* include/bits/stl_list.h (_M_initialize_dispatch(_InputIterator,
	_InputIterator, __false_type)): Use emplace_back.
	* testsuite/23_containers/list/cons/55979.cc: New.
	* testsuite/23_containers/list/modifiers/1.h: Adjust.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.

From-SVN: r196755
2013-03-17 18:27:52 +00:00
Jakub Jelinek
9f4f1735d8 re PR target/56640 (bootstrap failure on arm-linux-gnueabi{,hf})
PR target/56640
	* config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
	class names.  Remove trailing comma after "ALL_REGS".

From-SVN: r196753
2013-03-17 17:28:16 +01:00
Joseph Myers
b22c2a0b42 * sv.po: Update.
From-SVN: r196751
2013-03-17 15:50:07 +00:00
Jan Hubicka
48f4a6fa8a cgraph.h (cgraph_get_create_real_symbol_node): Declare.
* cgraph.h (cgraph_get_create_real_symbol_node): Declare.
	* cgraph.c (cgraph_get_create_real_symbol_node): New function.
	* cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
	of cgraph_get_create_node.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.

From-SVN: r196750
2013-03-17 15:43:13 +00:00
Jason Merrill
d1f45df55b decl.c (grokdeclarator): Assert that we won't see a pointer to METHOD_TYPE.
* decl.c (grokdeclarator): Assert that we won't see a pointer to
	METHOD_TYPE.

From-SVN: r196748
2013-03-16 23:11:07 -04:00
Jason Merrill
bab5167fe6 re PR c++/54277 (Template class member referred to with implicit this inside lambda is incorrectly const-qualified)
PR c++/54277
	* cp-tree.h (WILDCARD_TYPE_P): Split out from...
	(MAYBE_CLASS_TYPE_P): ...here.
	* semantics.c (lambda_capture_field_type): Only build a
	magic decltype for wildcard types.
	(lambda_proxy_type): Likewise.
	(finish_non_static_data_member): Get the quals from
	the object.

From-SVN: r196747
2013-03-16 22:41:22 -04:00
Jason Merrill
d14d53ad65 re PR c++/55931 ([C++11] Constexpr member function inside a static member is not working)
PR c++/55931
	* parser.c (cp_parser_template_argument): Don't
	fold_non_dependent_expr.

From-SVN: r196746
2013-03-16 22:39:51 -04:00
Jason Merrill
bc0c6b150e parser.c (cp_parser_lambda_declarator_opt): Use cp_parser_trailing_type_id.
* parser.c (cp_parser_lambda_declarator_opt): Use
	cp_parser_trailing_type_id.

From-SVN: r196745
2013-03-16 22:39:37 -04:00
Jason Merrill
cae7d26460 re PR c++/45917 (inaccessible types allowed as template argument in nested-name-specifier)
PR c++/45917
	* parser.c (cp_parser_template_id): Don't forget access checks.

From-SVN: r196744
2013-03-16 22:39:22 -04:00
Jason Merrill
7805032d9a re PR c++/52374 ([C++11] Fails to transform id-expression into dependent base member access in lambda expression)
PR c++/52374
	* pt.c (tsubst_qualified_id): Use current_nonlambda_class_type.

From-SVN: r196743
2013-03-16 22:39:04 -04:00
Jason Merrill
c73356802f re PR c++/54764 (In class initialization of non-static lambda member can't be used in class with default template paramer)
PR c++/54764
	PR c++/55972
	* name-lookup.h (tag_scope): Add ts_lambda.
	* semantics.c (begin_lambda_type): Use it.
	* decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.
	* pt.c (check_default_tmpl_args): Ignore lambdas.
	(push_template_decl_real): Handle lambdas.
	* tree.c (no_linkage_check): Adjust lambda check.

From-SVN: r196742
2013-03-16 22:38:50 -04:00
Jason Merrill
8e519a8b0a re PR c++/56039 (ICE in iterative_hash_template_arg, at cp/pt.c:1606)
PR c++/56039
	* tree.c (strip_typedefs_expr): Complain about lambda, don't abort.

From-SVN: r196741
2013-03-16 22:38:35 -04:00
Jason Merrill
bf7292fcee re PR c++/54359 ([C++0x] decltype in member function's trailing return type when defined outside of class)
PR c++/54359
	* parser.c (cp_parser_direct_declarator): Fix late return
	for out-of-class defn of member function.

From-SVN: r196740
2013-03-16 22:38:21 -04:00
Jason Merrill
b4c7ce543b re PR c++/55357 (-Wshadow warns about lambda function parameters matching variables in outer scope)
PR c++/55357
	* semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied
	parms to avoid duplicate -Wshadow warnings.

From-SVN: r196739
2013-03-16 22:38:01 -04:00
Jason Merrill
ca2e264dd6 * search.c (lookup_base): Handle NULL_TREE.
From-SVN: r196738
2013-03-16 22:37:33 -04:00
Jason Merrill
b7df43cdb4 re PR c++/56481 (endless loop compiling a C++ file)
PR c++/56481
	* semantics.c (potential_constant_expression_1): Use of 'this' in
	a non-constexpr function makes the expression not potentially
	constant.

From-SVN: r196737
2013-03-16 22:37:21 -04:00
Jason Merrill
57fcd4f4e4 re PR c++/52748 ([C++11] N3276 changes to decltype)
N3276
	PR c++/52748
	* cp-tree.h (tsubst_flags): Add tf_decltype.
	* call.c (build_cxx_call): Don't build a temporary if it's set.
	(build_over_call): Make sure it's only passed to build_cxx_call.
	* parser.c (cp_parser_primary_expression): Add decltype_p parm.
	(cp_parser_unary_expression): Likewise.
	(cp_parser_cast_expression): Likewise.
	(cp_parser_binary_expression): Likewise.
	(cp_parser_assignment_expression): Likewise.
	(cp_parser_postfix_expression): Likewise.  Pass tf_decltype.
	(cp_parser_explicit_instantiation): Add decltype_p.  Force a
	temporary for a call on the LHS of a comma.
	(cp_parser_decltype): Pass true to decltype_p parms.
	* pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype.
	(tsubst_copy_and_build): Pass tf_decltype down only for
	CALL_EXPR and the RHS of COMPOUND_EXPR.
	* tree.c (build_cplus_new): Call complete_type_or_maybe_complain.

From-SVN: r196736
2013-03-16 22:37:09 -04:00
Jason Merrill
2df663cced cp-tree.h (abstract_class_use): New enum.
* cp-tree.h (abstract_class_use): New enum.
	* typeck2.c (pending_abstract_type): Add use field.
	(abstract_virtuals_error_sfinae): Add overloads taking
	abstract_class_use instead of tree.
	* typeck.c (build_static_cast_1): Call it.
	* except.c (is_admissible_throw_operand_or_catch_parameter): Call it.
	* pt.c: Adjust calls.
	* decl.c (cp_finish_decl): Don't handle functions specially.
	(grokdeclarator): Always check return type.
	* init.c (build_new_1): Adjust call.

From-SVN: r196735
2013-03-16 22:36:55 -04:00
Jason Merrill
95ffad49d5 DR 337 PR c++/17232
DR 337
	PR c++/17232
	* pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae.
	* typeck2.c (abstract_virtuals_error_sfinae): Call complete_type.

From-SVN: r196734
2013-03-16 22:36:40 -04:00
Jason Merrill
346928a2c9 DR 657
DR 657
	* pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae.
	(tsubst_arg_types): Likewise.

From-SVN: r196733
2013-03-16 22:36:26 -04:00
Jason Merrill
0cc5ae8d62 DR 1518 PR c++/54835
DR 1518
	PR c++/54835
	* call.c (convert_like_real): Check for explicit constructors
	even for value-initialization.

From-SVN: r196732
2013-03-16 22:36:08 -04:00
Jason Merrill
cb3c050e51 re PR c++/54946 (ICE on template parameter from cast char-pointer in C++11 constexpr struct)
PR c++/54946
	* pt.c (convert_nontype_argument): Handle invalid pointer.

From-SVN: r196731
2013-03-16 22:35:50 -04:00
Jason Merrill
e9f3968bbe * parser.c (cp_parser_lambda_expression): Use nreverse.
From-SVN: r196730
2013-03-16 22:35:36 -04:00
Jason Merrill
e2adfdad84 re PR c++/56447 ([C++11] Lambda in template has conversion op it shouldn't have)
PR c++/56447
	PR c++/55532
	* pt.c (instantiate_class_template_1): Instantiate lambda capture
	list here.
	(tsubst_copy_and_build): Not here.

From-SVN: r196729
2013-03-16 22:35:18 -04:00
Jason Merrill
5275b2c7d7 re PR c++/55017 ([DR 1051] [C++11] Rvalue-reference member should cause copy constructor to be deleted, but still declared)
PR c++/55017
	* method.c (walk_field_subobs): Disallow copy of rvalue ref.

From-SVN: r196728
2013-03-16 22:35:01 -04:00
Jason Merrill
cdf47df08a re PR c++/55240 ([c++0x] ICE on non-static data member initialization using 'auto' variable from containing function)
PR c++/55240
	* parser.c (parsing_nsdmi): New.
	* semantics.c (outer_automatic_var_p): Check it.
	(finish_id_expression): Likewise.
	* cp-tree.h: Declare it.

From-SVN: r196727
2013-03-16 22:34:45 -04:00
Jason Merrill
a1e03bc5bc re PR c++/55241 ([C++11] diagnostics show sizeof...(T) as sizeof(T...))
PR c++/55241
	* error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly.

From-SVN: r196726
2013-03-16 22:34:31 -04:00
Jason Merrill
d09b76f153 parser.c (lookup_literal_operator): Correct parm/arg naming mixup.
* parser.c (lookup_literal_operator): Correct parm/arg naming
	mixup.

From-SVN: r196725
2013-03-16 22:34:20 -04:00
Jason Merrill
011ce3f3c2 re PR c++/56238 (ICE in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_conversions, at cp/search.c:2515)
PR c++/56238
	* pt.c (fold_non_dependent_expr_sfinae): Check
	instantiation_dependent_expression_p.

From-SVN: r196724
2013-03-16 22:34:03 -04:00
Jason Merrill
98e8112376 re PR debug/49090 (provide a way to recognize defaulted template parameters)
PR debug/49090
	* dwarf2out.c (gen_generic_params_dies): Indicate default arguments
	with DW_AT_default_value.

From-SVN: r196723
2013-03-16 22:33:50 -04:00
Jason Merrill
6721db5d15 re PR c++/56095 (Crash casting function pointer as non-type template argument)
PR c++/56095
	* class.c (resolve_address_of_overloaded_function): Accept a
	reference to function for target_type.
	(instantiate_type): Likewise.
	* pt.c (convert_nontype_argument): Pass it to
	convert_nontype_argument_function.

From-SVN: r196722
2013-03-16 22:33:38 -04:00
GCC Administrator
720f3cb82d Daily bump.
From-SVN: r196721
2013-03-17 00:21:11 +00:00
Jonathan Wakely
c49cec9348 re PR libstdc++/56468 (Clang exposes bug with unexpected forward-declaration of type_info)
PR libstdc++/56468
	* libsupc++/exception_ptr.h (type_info): Declare.

From-SVN: r196709
2013-03-16 20:01:16 +00:00
Jonathan Wakely
3442f18d26 re PR libstdc++/56002 ([C++11] allow generic locks to be used without requiring plattform support for threads)
PR libstdc++/56002
	* include/std/mutex (lock_guard, unique_lock, lock): Define without
	depending on _GLIBCXX_HAS_GTHREADS.
	* testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets.

From-SVN: r196706
2013-03-16 19:45:53 +00:00
Jakub Jelinek
b722c9a2a2 * tree.c (cp_tree_equal): Fix a pasto.
From-SVN: r196705
2013-03-16 20:36:41 +01:00