aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/cp/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/cp/ChangeLog')
-rw-r--r--gcc-4.8/gcc/cp/ChangeLog476
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.