gcc/gcc/cp/ChangeLog

520 lines
16 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2016-02-12 Jakub Jelinek <jakub@redhat.com>
* error.c: Spelling fixes - behaviour -> behavior and
neighbour -> neighbor.
* decl.c: Likewise.
* typeck.c (cp_build_binary_op): Fix up behavior spelling in
diagnostics.
* init.c (build_delete): Likewise.
2016-02-11 Jakub Jelinek <jakub@redhat.com>
PR c/69768
* typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
arguments for -Waddress warning. Fix up formatting.
2016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68726
* pt.c (lookup_template_class_1): Check tsubst return value for
error_mark_node.
2016-02-10 Jason Merrill <jason@redhat.com>
PR c++/68926
* pt.c (resolve_nondeduced_context): Add complain parm.
(do_auto_deduction): Pass it.
* cvt.c (convert_to_void): Likewise.
* decl.c (cp_finish_decl): Likewise.
* init.c (build_new): Likewise.
* rtti.c (get_tinfo_decl_dynamic): Likewise.
* semantics.c (finish_decltype_type): Likewise.
* typeck.c (decay_conversion): Likewise.
* cp-tree.h: Adjust declaration.
* call.c (standard_conversion): Add complain parm, pass it along.
(implicit_conversion): Pass it.
PR c++/69657
* name-lookup.c (ambiguous_decl): Call remove_hidden_names.
(lookup_name_real_1): Likewise.
(remove_hidden_names): Handle non-functions too.
PR c++/10200
* parser.c (cp_parser_lookup_name): When looking for a template
after . or ->, only consider class templates.
(cp_parser_postfix_dot_deref_expression): Handle the current
instantiation. Remember a dependent object expression.
* typeck2.c (build_x_arrow): Handle the current instantiation.
* ptree.c (debug_tree): Implement for cp_expr.
2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/69139
* parser.c (cp_parser_simple_type_specifier): Make the check
for disambiguating between an 'auto' placeholder and an implicit
template parameter more robust.
2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/69283
PR c++/67835
* decl2.c (mark_used): When given a TEMPLATE_DECL, return after
setting its TREE_USED flag.
2016-02-08 Jason Merrill <jason@redhat.com>
PR c++/69657
* name-lookup.c (do_nonmember_using_decl): Leave anticipated
built-ins alone.
2016-02-08 Jakub Jelinek <jakub@redhat.com>
PR c++/59627
* parser.c (cp_parser_omp_declare_reduction): Set assembler name
of the DECL_OMP_DECLARE_REDUCTION_P decls.
2016-02-08 Marek Polacek <polacek@redhat.com>
PR c++/69688
* constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
Call clear_fold_cache.
* cp-tree.h: Adjust declaration.
* decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
rather than clear_cv_cache and clear_fold_cache.
* typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
2016-02-08 Jason Merrill <jason@redhat.com>
* cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
* cvt.c (convert): Pass CONV_BACKEND_CONVERT.
(ocp_convert): Use *_maybe_fold.
(cp_convert_to_pointer): Add dofold parameter.
* cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
2016-02-05 Martin Sebor <msebor@redhat.com>
PR c++/69662
* init.c (find_field_init): New function.
(warn_placement_new_too_small): Call it. Handle one-element arrays
at ends of structures special.
2016-02-05 Jason Merrill <jason@redhat.com>
PR c++/68948
* semantics.c (finish_expr_stmt): If expr is error_mark_node,
make sure we've seen_error().
2016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/68948
* pt.c (tsubst_baselink): Diagnose an invalid constructor call
if lookup_fnfields returns NULL_TREE and the name being looked
up has the form A::A.
2016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
* constexpr.c (cxx_eval_binary_expression): Fold equality
comparisons involving PTRMEM_CSTs.
2016-02-04 Jakub Jelinek <jakub@redhat.com>
* class.c (find_flexarrays): Don't declare dom variable.
(diagnose_flexarray): Likewise.
2016-02-02 Martain Sebor <msebor@redhat.com>
PR c++/69251
PR c++/69253
PR c++/69290
PR c++/69277
PR c++/69349
* class.c (walk_subobject_offsets): Avoid testing the upper bound
of a flexible array member for equality to null.
(find_flexarrays): Remove spurious whitespace introduced in r231665.
(diagnose_flexarrays): Avoid checking the upper bound of arrays.
(check_flexarrays): Same.
* decl.c (compute_array_index_type): Avoid special case for flexible
array members.
(grokdeclarator): Avoid calling compute_array_index_type for flexible
array members.
* error.c (dump_type_suffix): Revert changes introduced in r231665
and rendered unnecessary by the changes above.
* pt.c (tsubst): Same.
* tree.c (build_ctor_subob_ref): Handle flexible array members.
* typeck2.c (digest_init_r): Revert changes introduced in r231665.
(process_init_constructor_array): Same.
(process_init_constructor_record): Same.
2016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/69056
* pt.c (try_one_overload): Handle comparing argument packs so
that there is no conflict if we deduced more arguments of an
argument pack than were explicitly specified.
2016-01-31 Jakub Jelinek <jakub@redhat.com>
Jason Merrill <jason@redhat.com>
PR c++/68763
* tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
function type if nothing is changing.
2016-01-31 Jason Merrill <jason@redhat.com>
PR c++/69009
* pt.c (partial_specialization_p, impartial_args): New.
(instantiate_decl): Call impartial_args.
* mangle.c (maybe_check_abi_tags): New.
(write_guarded_var_name): Call it.
(mangle_ref_init_variable): Call check_abi_tags.
* pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
between template and instantiation.
2016-01-29 Jakub Jelinek <jakub@redhat.com>
PR debug/66869
* decl.c (wrapup_globals_for_namespace): Warn about unused static
function declarations.
2016-01-29 Marek Polacek <polacek@redhat.com>
PR c++/69509
PR c++/69516
* constexpr.c (cxx_eval_array_reference): Give the "array subscript
out of bound" error earlier.
* init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
commentary.
2016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
* name-lookup.c (begin_scope): After reusing a cp_binding_level
structure, update free_binding_level before the structure's
level_chain field gets cleared, not after.
2016-01-28 Jason Merrill <jason@redhat.com>
PR c++/67407
* search.c (dfs_walk_once, dfs_walk_once_r)
(dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
hash_set instead of BINFO_MARKED.
(dfs_unmark_r): Remove.
2016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/24208
* parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
(cp_lexer_debugging_p): Use it.
(cp_lexer_start_debugging): Likewise.
(cp_lexer_stop_debugging): Likewise.
2016-01-27 Marek Polacek <polacek@redhat.com>
PR c/68062
* typeck.c (cp_build_binary_op): Promote operand to unsigned, if
needed. Add -Wsign-compare warning.
2016-01-27 Ryan Burn <contact@rnburn.com>
PR cilkplus/69267
* cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
superfluous post_p argument in call to
cilk_gimplify_call_params_in_spawned_fn.
2016-01-27 Marek Polacek <polacek@redhat.com>
PR c++/69379
* constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
wrapped in NOP_EXPRs.
2016-01-27 Martin Sebor <msebor@redhat.com>
PR c++/69317
* mangle.c (mangle_decl): Reference the correct (saved) version
of the ABI in -Wabi diagnostics.
2016-01-27 Marek Polacek <polacek@redhat.com>
PR c++/69496
* constexpr.c (cxx_eval_array_reference): Evaluate the number of
elements of the array.
2016-01-26 Jason Merrill <jason@redhat.com>
PR c++/68949
* constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
(cxx_eval_call_expression): Don't look through clones.
* optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
* semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
maybe-in-charge *tor.
2016-01-26 Jason Merrill <jason@redhat.com>
PR c++/68782
* constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
and TREE_SIDE_EFFECTS.
(cxx_eval_constant_expression) [CONSTRUCTOR]: Call
verify_constructor_flags.
2016-01-26 Jakub Jelinek <jakub@redhat.com>
PR c++/68357
* cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
return error_mark_node instead of building trees with error_mark_node
operands.
2016-01-26 David Malcolm <dmalcolm@redhat.com>
PR other/69006
* error.c (print_instantiation_partial_context_line): Add missing
newlines from output for the t == NULL case.
(print_instantiation_partial_context): Remove call to pp_newline.
2016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
Revert:
2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/11858
PR c++/24663
PR c++/24664
* decl.c (grokdeclarator): Don't decay array parameter type to
a pointer type if it's dependent.
(grokparms): Invoke strip_top_quals instead of directly invoking
cp_build_qualified_type.
* pt.c (decay_dependent_array_parm_type): New static function.
(type_unification_real): Call decay_dependent_array_parm_type
to decay a dependent array parameter type to its corresponding
pointer type before unification.
(more_specialized_fn): Likewise.
(get_bindings): Likewise.
* tree.c (cp_build_qualified_type): Trivial typofix in
documentation.
2016-01-23 Martin Sebor <msebor@redhat.com>
PR c++/58109
PR c++/69022
* decl2.c (is_late_template_attribute): Handle dependent argument
to attribute align and attribute vector_size.
2016-01-21 Jason Merrill <jason@redhat.com>
PR c++/69392
* lambda.c (lambda_capture_field_type): Handle 'this' specially
for init-capture, too.
PR c++/65687
* decl.c (type_is_deprecated): Don't look into a typedef.
PR c++/40751
PR c++/64987
* decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
PR c++/43407
* decl.c (start_enum): Add attributes parameter.
* parser.c (cp_parser_enum_specifier): Pass it.
* pt.c (lookup_template_class_1): Pass it.
* cp-tree.h: Adjust.
2016-01-19 Jason Merrill <jason@redhat.com>
PR c++/59759
* pt.c (convert_template_argument): Handle VAR_DECL properly.
2016-01-19 Marek Polacek <polacek@redhat.com>
PR c++/68586
* constexpr.c (clear_cv_cache): New.
* cp-gimplify.c (clear_fold_cache): New.
* cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
* decl.c (finish_enum_value_list): Call them.
PR c++/68965
* pt.c (tsubst_copy): Mark elements in expanded vector as used.
2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/11858
PR c++/24663
PR c++/24664
* decl.c (grokdeclarator): Don't decay array parameter type to
a pointer type if it's dependent.
(grokparms): Invoke strip_top_quals instead of directly invoking
cp_build_qualified_type.
* pt.c (decay_dependent_array_parm_type): New static function.
(type_unification_real): Call decay_dependent_array_parm_type
to decay a dependent array parameter type to its corresponding
pointer type before unification.
(more_specialized_fn): Likewise.
(get_bindings): Likewise.
* tree.c (cp_build_qualified_type): Trivial typofix in
documentation.
2016-01-18 Jason Merrill <jason@redhat.com>
* cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
* cp-gimplify.c (cp_fold): Remove unnecessary special cases.
PR c++/68767
* cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
(contains_label_1, contains_label_p): Remove.
2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/69091
* pt.c (type_dependent_expression_p): For a function template
specialization, a type is dependent iff any of its template
arguments are.
2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
* cp-array-notation.c (cp_expand_cond_array_notations): Return
error_mark_node only if find_rank failed, not if it was
successful.
2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/68936
* tree.c (build_min_non_dep_call_vec): Don't retain the
KOENIG_LOOKUP_P flag of the non-dependent expression that's
been built.
(build_min_non_dep_op_overload): Instead, do it here.
2016-01-15 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/68271
* parser.h (cp_token): Remove pragma_kind field. Add comment
with number of unused bits.
* parser.c (eof_token): Remove pragma_kind field initializer.
(cp_lexer_get_preprocessor_token): Don't set pragma_kind
field, don't clear CPP_PRAGMA u.value.
(cp_parser_pragma_kind): New function.
(cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
cp_parser_omp_construct, cp_parser_initial_pragma,
cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
pragma_kind field.
2016-01-15 Jason Merrill <jason@redhat.com>
PR c++/68847
* call.c (build_cxx_call): Use fold_non_dependent_expr.
* typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
value.
PR c++/69257
* typeck.c (decay_conversion): Don't call mark_rvalue_use for
array/function-to-pointer conversion. Call
complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
* call.c (convert_like_real): Print call context if
decay_conversion errors.
2016-01-14 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/68773
* parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
set force_output.
2016-01-14 Jason Merrill <jason@redhat.com>
PR c++/69261
* constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
2016-01-12 Marek Polacek <polacek@redhat.com>
PR c++/68979
* constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
error_at and adjust the return value.
2016-01-12 Jakub Jelinek <jakub@redhat.com>
PR objc++/68511
PR c++/69213
* cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
GS_ERROR whenever seen_error (), only if *expr_p contains
cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
PR c++/66808
PR c++/69000
* pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
2016-01-11 Jason Merrill <jason@redhat.com>
PR c++/69131
* method.c (walk_field_subobs): Add dtor_from_ctor parm.
(process_subob_fn): Likewise. Don't consider triviality if true.
(synthesize_method_walk): Pass it.
2016-01-11 David Malcolm <dmalcolm@redhat.com>
PR c++/68795
* parser.c (cp_parser_postfix_expression): Initialize
close_paren_loc to UNKNOWN_LOCATION; only use it if
it has been written to by
cp_parser_parenthesized_expression_list.
(cp_parser_parenthesized_expression_list): Document the behavior
with respect to the CLOSE_PAREN_LOC param.
2016-01-11 Jakub Jelinek <jakub@redhat.com>
PR c++/69211
* cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
folded operands have side-effects, but folding changed any of them,
build a new tree with the folded operands instead of returning the
unfolded tree.
2016-01-09 Marek Polacek <polacek@redhat.com>
PR c++/69113
* decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
2016-01-09 Jakub Jelinek <jakub@redhat.com>
PR c++/69164
* class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
2016-01-08 Jason Merrill <jason@redhat.com>
PR c++/69158
* constexpr.c (cxx_fold_indirect_ref): Handle array type differing
in completion.
2016-01-08 Marek Polacek <polacek@redhat.com>
PR c++/68449
* constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
2016-01-08 Jason Merrill <jason@redhat.com>
* constexpr.c (cxx_eval_call_expression): Remove convert_to_void
workaround.
PR c++/68983
PR c++/67557
* cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
TREE_ADDRESSABLE type.
PR c++/68983
PR c++/67557
* call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
2016-01-05 Nathan Sidwell <nathan@acm.org>
PR c++/58583
* pt.c (build_non_dependent_expr): Don't try a checking fold when
parsing an nsdmi.
2016-01-04 Jakub Jelinek <jakub@redhat.com>
Update copyright years.
Copyright (C) 2016 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.