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
Jakub Jelinek
87eb16a1bc
re PR c++/56607 (GCC fails to warn on division by zero)
...
PR c++/56607
* typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero,
pass op1 through maybe_constant_value first.
* g++.dg/warn/Wdiv-by-zero-2.C: New test.
* c-c++-common/pr56607.c: New test.
From-SVN: r196704
2013-03-16 20:35:41 +01:00
Paolo Carlini
9a54d96aab
re PR c++/56582 (ICE on negative array index in C++11 constant expression evaluation)
...
/cp
2013-03-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/56582
* semantics.c (cxx_eval_array_reference): Check for negative index.
/testsuite
2013-03-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/56582
* g++.dg/cpp0x/constexpr-array5.C: New.
From-SVN: r196701
2013-03-16 10:02:11 +00:00
Eric Botcazou
179c5970e6
* gnatvsn.ads (Library_Version): Bump to 4.9.
...
From-SVN: r196700
2013-03-16 09:16:49 +00:00
Jakub Jelinek
2fa73fc02e
* crontab: Enable snapshots from gcc-4_8-branch.
...
From-SVN: r196698
2013-03-16 08:22:35 +01:00