diff options
Diffstat (limited to 'gcc-4.8/gcc/cp/ChangeLog')
-rw-r--r-- | gcc-4.8/gcc/cp/ChangeLog | 476 |
1 files changed, 476 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/cp/ChangeLog b/gcc-4.8/gcc/cp/ChangeLog new file mode 100644 index 000000000..a22f2c352 --- /dev/null +++ b/gcc-4.8/gcc/cp/ChangeLog @@ -0,0 +1,476 @@ +2013-03-22 Release Manager + + * GCC 4.8.0 released. + +2013-03-14 Jason Merrill <jason@redhat.com> + + PR c++/56614 + * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again. + + PR c++/56346 + * decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit + dso_handle parm on targets without __cxa_atexit. + +2013-03-11 Jason Merrill <jason@redhat.com> + + PR c++/56567 + * typeck.c (check_return_expr): Disallow returning init list here. + * semantics.c (apply_deduced_return_type): Not here. + +2013-03-08 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/51412 + * cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR. + * error.c (dump_expr): Likewise. + +2013-03-08 Jason Merrill <jason@redhat.com> + + PR c++/51884 + * class.c (modify_all_vtables): Mangle the vtable name before + entering dfs_walk. + + * semantics.c (lambda_expr_this_capture): In unevaluated context, + just return the nearest 'this'. + + PR c++/51494 + PR c++/52183 + PR c++/56222 + * tree.c (maybe_dummy_object): Don't capture 'this'. + * semantics.c (maybe_resolve_dummy): New. + (finish_non_static_data_member): Use it. + (finish_qualified_id_expr): Don't test is_dummy_object. + * cp-tree.h: Declare maybe_resolve_dummy. + * call.c (build_new_method_call_1): Use it. + + PR c++/56567 + * semantics.c (apply_deduced_return_type): Don't allow returning + std::initializer_list. + +2013-03-06 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/56534 + * parser.c (cp_parser_elaborated_type_specifier): Don't call + check_elaborated_type_specifier when TREE_CODE (decl) != TYPE_DECL. + * decl.c (check_elaborated_type_specifier): Tidy. + +2013-03-06 Jakub Jelinek <jakub@redhat.com> + + PR c++/56543 + * tree.c (strip_typedefs): Don't copy args if they are NULL. + +2013-03-05 Jakub Jelinek <jakub@redhat.com> + + * parser.c (cp_parser_braced_list): For {} initialize + *non_constant_p to false. + +2013-03-04 Jason Merrill <jason@redhat.com> + + PR c++/56464 + PR c++/54383 + * semantics.c (lambda_expr_this_capture): Handle NSDMI + and non-class scopes. + +2013-03-01 Paolo Carlini <paolo.carlini@oracle.com> + + * decl.c (grokdeclarator): Remove dead code. + +2013-02-28 Jason Merrill <jason@redhat.com> + + PR c++/56481 + * semantics.c (potential_constant_expression_1): Use + cxx_eval_outermost_constant_expr rather than maybe_constant_value. + + PR c++/56243 + * call.c (build_over_call): Avoid virtual lookup in a template. + +2013-02-27 Jason Merrill <jason@redhat.com> + + PR c++/56358 + PR c++/56323 + * name-lookup.c (do_class_using_decl): Use ctor_identifier instead + of the base name for inheriting ctors. + (push_class_level_binding_1): Remove inheriting ctor handling. + * pt.c (tsubst_decl) [USING_DECL]: Likewise. + * class.c (add_implicitly_declared_members): Adjust. + +2013-02-26 David Binderman <dcb314@hotmail.com> + + PR c++/55632 + * decl.c (grokdeclarator): Tidy publicp assignment. + +2013-02-25 Aldy Hernandez <aldyh@redhat.com> + + PR c++/56419 + * semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS. + (build_transaction_expr): Same. + +2013-02-25 Jason Merrill <jason@redhat.com> + + PR c++/56377 + * pt.c (fn_type_unification): Wait to call push_tinst_level until + we know what args we're looking at. + + PR c++/56438 + * semantics.c (potential_constant_expression_1): In C++98, a cast + to non-integral type can't be a constant expression. + +2013-02-24 Jakub Jelinek <jakub@redhat.com> + + PR c++/56403 + * init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead + of CLASS_TYPE_P. + +2013-02-22 Jason Merrill <jason@redhat.com> + + PR c++/40405 + * pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN + if we got the wrong number of template parms. + + PR c++/56377 + * pt.c (fn_type_unification): Use explicit args in template + instantiation context. + + PR c++/56359 + * call.c (can_convert_arg): Discard access checks. + + PR c++/56395 + * tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template + args. + +2013-02-20 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/56373 + * tree.c (maybe_warn_zero_as_null_pointer_constant): Add. + * cvt.c (ocp_convert): Use the latter. + (cp_convert_to_pointer): Likewise. + * decl.c (check_default_argument): Likewise. + * typeck.c (cp_build_binary_op): Likewise. + * cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare. + +2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com> + Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/51242 + * decl2.c (grokbitfield): Allow scoped enumeration types. + +2013-02-15 Jason Merrill <jason@redhat.com> + + PR c++/54276 + * semantics.c (finish_id_expression): Also return the identifier + for an outer local static. + + PR c++/56343 + * class.c (check_bases_and_members): Deduce noexcept after + checking bases. + + PR c++/52026 + * semantics.c (finish_id_expression): In a template, return + the identifier for a constant variable. + +2013-02-14 Jason Merrill <jason@redhat.com> + + PR c++/54922 + * semantics.c (build_anon_member_initialization): New. + (build_data_member_initialization): Use it. + + PR c++/55003 + * decl.c (cp_finish_decl): Force instantiation of an + auto static data member. + + PR c++/55220 + * pt.c (unify): A pack expansion that is not the last template + argument makes the entire template argument list non-deduced. + + PR c++/56323 + * name-lookup.c (do_class_using_decl): Handle typedefs with + inheriting constructors. + (push_class_level_binding_1): Allow inheriting from template + template parameter, too. + * pt.c (tsubst_decl) [USING_DECL]: Likewise. + + PR c++/55223 + * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of + default argument scope. + * mangle.c (write_name): Likewise. + + PR c++/55232 + * error.c (find_typenames_r): Don't walk into a pack expansion. + +2013-02-13 Jason Merrill <jason@redhat.com> + + PR c++/55670 + * parser.c (cp_parser_member_declaration): Check the declarator + form when detecting a function declaration via typedef. + + PR c++/55680 + * pt.c (maybe_process_partial_specialization): A lambda + isn't what's being specialized. + + PR c++/55710 + * semantics.c (maybe_add_lambda_conv_op): Mark static thunk + TREE_USED. + + PR c++/55879 + * semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE. + + PR c++/55993 + * semantics.c (cxx_fold_indirect_ref): Handle empty bases at + non-zero offsets, too. + + PR c++/56155 + * decl.c (build_enumerator): Always convert the value to a + fixed underlying type. + + PR c++/56135 + * pt.c (tsubst_copy_and_build): Don't forget any new + captures that arose from use of dependent names. + +2013-02-13 Jakub Jelinek <jakub@redhat.com> + + PR c++/56302 + * semantics.c (finish_asm_stmt): If input constraints allow + neither register nor memory, try maybe_constant_value to get + a constant if possible. + +2013-02-12 Jason Merrill <jason@redhat.com> + + PR c++/56285 + * method.c (add_one_base_init): Handle base constructor + taking rvalue reference parm. + + PR c++/56291 + * semantics.c (sort_constexpr_mem_initializers): Handle + vptr out of order. + +2013-02-09 Jason Merrill <jason@redhat.com> + + PR c++/56268 + * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call + maybe_instantiate_noexcept. + + PR c++/56247 + * pt.c (eq_specializations): Set comparing_specializations. + * tree.c (cp_tree_equal): Check it. + * cp-tree.h: Declare it. + + * decl.c (decls_match): Check versions later. + + PR c++/56238 + * pt.c (build_non_dependent_expr): Don't try to fold + instantiation-dependent expressions. + (instantiation_dependent_r) [TRAIT_EXPR]: Split out. + [BIND_EXPR]: Treat as dependent. + +2013-02-07 Jakub Jelinek <jakub@redhat.com> + + PR c++/56241 + * init.c (build_vec_init): Don't append NULL values into new_vec. + (build_zero_init_1): Don't push anything into v if recursive call + returned NULL_TREE. + (build_value_init_noctor): Don't push anything into v if + build_value_init call returned NULL_TREE. + + PR c++/56239 + * parser.c (cp_parser_token_starts_cast_expression): Renamed to... + (cp_parser_tokens_start_cast_expression): ... this. Change parameter + to cp_parser *, call cp_lexer_peek_token first. For CPP_OPEN_PAREN, + return true only if 2nd token isn't CPP_CLOSE_PAREN. + (cp_parser_cast_expression): Adjust caller. + + PR c++/56237 + * decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t) + only if DECL_DISCRIMINATOR_SET_P (t) rather than just + DECL_LANG_SPECIFIC (t). + +2013-02-07 Jason Merrill <jason@redhat.com> + + PR c++/56235 + * method.c (do_build_copy_constructor): Don't bother turning + scalars from lvalues to xvalues. + (do_build_copy_assign): Likewise. + +2013-02-06 Jason Merrill <jason@redhat.com> + + * parser.c (cp_parser_enum_specifier): Check for error_mark_node. + +2013-02-05 Jason Merrill <jason@redhat.com> + + PR c++/54122 + * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for + METHOD_TYPE. + + PR c++/56177 + * decl.c (start_preparsed_function): Update restype if we change + decl1. + + PR c++/56208 + * pt.c (fn_type_unification): Discard any access checks from + substituting explicit args. + +2013-01-31 Jason Merrill <jason@redhat.com> + + PR c++/56162 + PR c++/56104 + * typeck.c (get_member_function_from_ptrfunc): Fix + ptrmemfunc_vbit_in_delta case. + +2013-01-29 Jason Merrill <jason@redhat.com> + + PR libstdc++/54314 + * class.c (build_ctor_vtbl_group): Give construction vtables + hidden visibility. + +2013-01-25 Jason Merrill <jason@redhat.com> + + PR c++/56095 + * pt.c (convert_nontype_argument_function): Handle invalid input. + (convert_nontype_argument): Likewise. + + PR c++/56104 + * typeck.c (get_member_function_from_ptrfunc): Optimize if the + dynamic type has no virtual functions. + +2013-01-22 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/55944 + * decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only + on TARGET_EXPR nodes. + +2013-01-22 Jason Merrill <jason@redhat.com> + + PR c++/56071 + * pt.c (maybe_instantiate_noexcept): Don't defer access checks. + +2013-01-22 Dodji Seketeli <dodji@redhat.com> + + PR c++/53609 + * pt.c (argument_pack_element_is_expansion_p) + (make_argument_pack_select, use_pack_expansion_extra_args_p) + (gen_elem_of_pack_expansion_instantiation): New static functions. + (tsubst): When looking through an ARGUMENT_PACK_SELECT tree node, + look through the possibly resulting pack expansion as well. + (tsubst_pack_expansion): Use use_pack_expansion_extra_p to + generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism. + Use gen_elem_of_pack_expansion_instantiation to build the + instantiation piece-wise. Don't use arg_from_parm_pack_p anymore, + as gen_elem_of_pack_expansion_instantiation and the change in + tsubst above generalize this particular case. + (arg_from_parm_pack_p): Remove this for it's not used by + tsubst_pack_expansion anymore. + +2013-01-21 Jason Merrill <jason@redhat.com> + + PR c++/56059 + * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default + template args count. + +2013-01-18 Jason Merrill <jason@redhat.com> + + PR target/54908 + * decl2.c (get_local_tls_init_fn): New. + (get_tls_init_fn): Handle flag_extern_tls_init. Don't bother + with aliases for internal variables. Don't use weakrefs if + the variable needs destruction. + (generate_tls_wrapper): Mark the wrapper as const if no + initialization is needed. + (handle_tls_init): Don't require aliases. + +2013-01-15 Dodji Seketeli <dodji@redhat.com> + + PR c++/55663 + * pt.c (coerce_innermost_template_parms): New static function. + (instantiate_alias_template): Use it here. + +2013-01-09 Jason Merrill <jason@redhat.com> + + PR c++/55878 + * rtti.c (build_typeid, get_typeid): Add complain parm. + (get_tinfo_decl_dynamic): Likewise. + * cp-tree.h, parser.c, pt.c: Adjust. + + PR c++/55893 + * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable + needs destruction. + +2013-01-09 Jakub Jelinek <jakub@redhat.com> + + PR c/48418 + * typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR, + call maybe_constant_value for the negative or too big shift + count warnings. + +2013-01-09 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/55801 + * decl2.c (var_needs_tls_wrapper): Return false when error_operand_p + of the argument is true. + +2013-01-08 Joel Brobecker <brobecker@adacore.com> + + * parser.c (cp_parser_initializer_list): Move declaration + of variable non_const to start of lexical block. + +2013-01-07 Jason Merrill <jason@redhat.com> + + PR c++/55753 + * tree.c (build_aggr_init_expr): Do nothing in a template. + * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off + a FUNCTION_DECL before tsubsting. + +2013-01-04 Dodji Seketeli <dodji@redhat.com> + + PR c++/52343 + * pt.c (check_instantiated_arg): Allow type template arguments. + +2013-01-04 Jason Merrill <jason@redhat.com> + + PR c++/55877 + * decl.c (reset_type_linkage, bt_reset_linkage): New. + (grokdeclarator): Use reset_type_linkage. + * name-lookup.c (binding_table_foreach): Handle null table. + * tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME. + +2013-01-04 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/54526 (again) + * parser.c (cp_parser_template_id): Revert core of previous change + (keep adjusted inform message). + +2013-01-03 Jason Merrill <jason@redhat.com> + + PR c++/55419 + PR c++/55753 + * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch + TREE_CONSTANT. + + PR c++/55842 + * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept. + + PR c++/55856 + * semantics.c (build_data_member_initialization): Handle DECL_EXPR. + + PR c++/53650 + * call.c (type_has_extended_temps): New. + * cp-tree.h: Declare it. + * decl.c (check_initializer): Use build_aggr_init for arrays + if it is false. + * init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic. + +2013-01-02 Jason Merrill <jason@redhat.com> + + PR c++/54325 + * call.c (build_new_method_call_1): Don't use build_value_init for + user-provided default constructors. + + * decl.c (check_default_argument): Use LOOKUP_IMPLICIT. + + PR c++/55032 + PR c++/55245 + * tree.c (build_cplus_array_type): Copy layout information + to main variant if necessary. + +Copyright (C) 2013 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. |