mirror of git://gcc.gnu.org/git/gcc.git
1498 lines
46 KiB
Plaintext
1498 lines
46 KiB
Plaintext
2014-05-14 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* cp-tree.h (DIRECT_LIST_INIT_P): Add.
|
||
* call.c (convert_like_real, build_new_method_call_1): Use it.
|
||
* decl2.c (grokfield): Likewise.
|
||
* init.c (perform_member_init, build_aggr_init, expand_default_init,
|
||
build_new_1): Likewise.
|
||
* mangle.c (write_expression): Likewise.
|
||
* parser.c (cp_parser_late_parse_one_default_arg): Likewise.
|
||
|
||
2014-05-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/20332
|
||
PR c++/21631
|
||
* call.c (reference_binding): Treat lvalue/rvalue mismatch and
|
||
dropped cv-quals as a bad conversion.
|
||
(convert_like_real) [ck_ref_bind]: Explain them.
|
||
(compare_ics): Check badness before stripping reference
|
||
bindings. Handle comparing bad reference bindings.
|
||
* typeck.c (comp_cv_qualification): Add overload that just takes
|
||
integers.
|
||
* cp-tree.h: Declare it.
|
||
|
||
* call.c (struct conversion_info): Rename 'from_type' to 'from'.
|
||
(arg_conversion_rejection, bad_arg_conversion_rejection)
|
||
(explicit_conversion_rejection, template_conversion_rejection): Adjust.
|
||
(add_function_candidate): Pass actual argument, rather than type, to
|
||
bad_arg_conversion_rejection.
|
||
(print_conversion_rejection): Explain what's wrong with the conversion.
|
||
(print_z_candidates): Say "candidate:" before each candidate.
|
||
(splice_viable): Be strict if we see a viable or template candidate.
|
||
(build_user_type_conversion_1): Pass false to strict parameter.
|
||
(perform_overload_resolution, build_conditional_expr_1): Likewise.
|
||
(build_new_op_1, build_new_method_call_1): Likewise.
|
||
(build_op_call_1): Pass true to strict parameter.
|
||
|
||
2014-05-13 Jason Merrill <jason@redhat.com>
|
||
|
||
* call.c (print_error_for_call_failure): Say "no match" rather
|
||
than "ambiguous" if there were no strict matches.
|
||
(build_new_method_call_1): Likewise.
|
||
|
||
PR c++/61151
|
||
* semantics.c (is_this_parameter): Allow capture proxies too.
|
||
|
||
2014-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
* call.c (maybe_print_user_conv_context): New.
|
||
(convert_like_real): Use it. Print call context for bad
|
||
user-defined conversion.
|
||
(build_over_call): Print call context for bad 'this' conversion.
|
||
|
||
* call.c (convert_like_real): Use inform for identifying the
|
||
declaration point.
|
||
|
||
2014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* cvt.c (cp_convert_to_pointer): Don't call error_at if
|
||
complain & tf_error is false.
|
||
|
||
* decl.c (make_unbound_class_template): Prefer inform for
|
||
"declared here"-type message.
|
||
|
||
2014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
|
||
|
||
PR c++/60463
|
||
PR c++/60755
|
||
* lambda.c (lambda_expr_this_capture): Add new parameter
|
||
add_capture_p controlling whether the functions will try to
|
||
capture 'this' via the default capture.
|
||
(maybe_resolve_dummy): Likewise.
|
||
* cp-tree.h: Adjust prototypes.
|
||
* call.c, semantics.c: Change callers of these functions.
|
||
* call.c (build_new_method_call_1): Use the actual 'this' that
|
||
would be potentially captured for the overload resolution, instead
|
||
of the dummy object.
|
||
|
||
2014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* pt.c (convert_nontype_argument_function): Add tsubst_flags_t
|
||
parameter.
|
||
(convert_nontype_argument): Adjust calls.
|
||
(coerce_template_parameter_pack): Add missing complain & tf_error
|
||
check.
|
||
|
||
2014-05-09 Jason Merrill <jason@redhat.com>
|
||
|
||
DR 587
|
||
PR c++/51317
|
||
* call.c (build_conditional_expr_1, conditional_conversion): Handle
|
||
non-class lvalues and xvalues that differ only in cv-qualifiers.
|
||
|
||
DR 5
|
||
PR c++/60019
|
||
* call.c (build_user_type_conversion_1): The copy-init temporary
|
||
is cv-unqualified.
|
||
|
||
PR c++/58714
|
||
* tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
|
||
|
||
PR c++/54348
|
||
* call.c (build_conditional_expr_1): If overload resolution finds
|
||
no match, just say "different types".
|
||
|
||
PR c++/32019
|
||
* call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
|
||
|
||
PR c++/22434
|
||
* call.c (build_conditional_expr_1): Don't try to pool cv-quals
|
||
if we didn't find a conversion.
|
||
Don't accept a bad conversion too early.
|
||
|
||
2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/13981
|
||
* typeck.c (convert_for_assignment): Provide an inform for pointers
|
||
to incomplete class types.
|
||
|
||
2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/61083
|
||
* pt.c (convert_nontype_argument): Protect all the error calls
|
||
with complain & tf_error.
|
||
|
||
2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/61080
|
||
* pt.c (instantiate_decl): Avoid generating the body of a
|
||
deleted function.
|
||
|
||
2014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60999
|
||
* pt.c (maybe_begin_member_template_processing): Use
|
||
uses_template_parms.
|
||
|
||
2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
Mike Stump <mikestump@comcast.net>
|
||
Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* call.c: Include wide-int.h.
|
||
(type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
|
||
(convert_for_arg_passing): Likewise.
|
||
* class.c: Include wide-int.h.
|
||
(walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
|
||
(end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
|
||
(include_empty_classes): Likewise
|
||
(layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
|
||
* cvt.c: Include wide-int.h.
|
||
(ignore_overflows): Use wide_int_to_tree.
|
||
* decl.c: Include wide-int.h.
|
||
(check_array_designated_initializer): Use wide-int interfaces.
|
||
(compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
|
||
(finish_enum_value_list): Use signop.
|
||
(build_enumerator): Use wide-int interfaces.
|
||
* init.c: Include wide-int.h.
|
||
(build_new_1): Use wide-int interfaces.
|
||
* mangle.c: Include wide-int.h.
|
||
(write_integer_cst): Use wide-int interfaces.
|
||
(write_array_type): Likewise.
|
||
* tree.c: Include wide-int.h.
|
||
(cp_tree_equal): Use tree_int_cst_equal.
|
||
* typeck2.c: Include wide-int.h.
|
||
(process_init_constructor_array): Use wide-int interfaces.
|
||
|
||
2014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58582
|
||
* decl.c (grokfndecl): Check duplicate_decls return value for
|
||
error_mark_node.
|
||
* pt.c (instantiate_decl): A deleted function is defined.
|
||
|
||
2014-05-02 Jason Merrill <jason@redhat.com>
|
||
|
||
* decl2.c (vague_linkage_p): Local statics have vague linkage.
|
||
|
||
PR c++/60992
|
||
* lambda.c (lambda_capture_field_type): Wrap anything dependent
|
||
other than 'this'.
|
||
(add_capture): Check for VLA before calling it.
|
||
* semantics.c (is_this_parameter): Accept any 'this' parameter, not
|
||
just the current one. Make non-static.
|
||
* cp-tree.h: Declare it.
|
||
* pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
|
||
the operand was static or constant.
|
||
|
||
2014-05-02 Marek Polacek <polacek@redhat.com>
|
||
|
||
* typeck.c (maybe_warn_about_returning_address_of_local): Separate
|
||
warning_at calls.
|
||
|
||
2014-05-01 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/43395
|
||
* typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
|
||
between label and variable when warning about returning local address.
|
||
|
||
2014-04-30 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60980
|
||
* init.c (build_value_init): Don't try to call an array constructor.
|
||
|
||
PR c++/60951
|
||
* typeck2.c (massage_init_elt): Use maybe_constant_init.
|
||
|
||
2014-04-30 Marek Polacek <polacek@redhat.com>
|
||
|
||
* typeck.c (cp_build_binary_op): Call ubsan_instrument_division
|
||
even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
|
||
for non-integer types.
|
||
|
||
2014-04-29 Jason Merrill <jason@redhat.com>
|
||
|
||
DR 1351
|
||
Represent the unevaluated exception specification of an implicitly
|
||
declared or deleted function with a simple placeholder, not a list
|
||
of functions.
|
||
* cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
|
||
* except.c (unevaluated_noexcept_spec): New.
|
||
* class.c (deduce_noexcept_on_destructor): Use it.
|
||
* decl.c (check_redeclaration_exception_specification): Call
|
||
maybe_instantiate_noexcept.
|
||
(duplicate_decls): Call it before merge_types.
|
||
(start_preparsed_function): Call maybe_instantiate_noexcept.
|
||
* decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
|
||
* init.c (get_nsdmi): Factor out of perform_member_init.
|
||
* method.c (process_subob_fn): Call maybe_instantiate_noexcept.
|
||
(walk_field_subobs): Consider NSDMI for EH spec.
|
||
(get_defaulted_eh_spec): New.
|
||
(implicitly_declare_fn): Use unevaluated_noexcept_spec.
|
||
(defaulted_late_check): Defer EH checking in non-template classes.
|
||
(after_nsdmi_defaulted_late_checks): New.
|
||
* parser.c (cp_parser_class_specifier_1): Use it.
|
||
(unparsed_classes): New macro.
|
||
* parser.h (cp_unparsed_functions_entry_d): Add classes field.
|
||
* pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
|
||
Remove list-of-functions handling.
|
||
* typeck2.c (merge_exception_specifiers): Remove list-of-functions
|
||
handling and FN parameter.
|
||
* typeck.c (merge_types): Adjust.
|
||
|
||
2014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/59120
|
||
* parser.c (cp_parser_alias_declaration): Check return value of
|
||
cp_parser_require.
|
||
|
||
2014-04-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* parser.c (cp_parser_omp_atomic): Allow seq_cst before
|
||
atomic-clause, allow comma in between atomic-clause and
|
||
seq_cst.
|
||
|
||
2014-04-24 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR libstdc++/43622
|
||
* rtti.c (emit_support_tinfos): Do not iterate on
|
||
registered_builtin_types (partial revert).
|
||
|
||
2014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
|
||
|
||
PR c++/57958
|
||
* semantics.c (apply_deduced_return_type): Complete non-void type
|
||
before estimating whether the type is aggregate.
|
||
|
||
2014-04-22 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR libstdc++/43622
|
||
* rtti.c (emit_support_tinfo_1): New function, extracted from
|
||
emit_support_tinfos.
|
||
(emit_support_tinfos): Call it and iterate on registered_builtin_types.
|
||
|
||
2014-04-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/59073
|
||
* parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
|
||
fails, don't set OM_PARALLEL_COMBINED and return NULL.
|
||
|
||
2014-04-18 Jason Merrill <jason@redhat.com>
|
||
|
||
DR 1571
|
||
* call.c (reference_binding): Recurse on user-defined conversion.
|
||
|
||
PR c++/60872
|
||
* call.c (standard_conversion): Don't try to apply restrict to void.
|
||
|
||
2014-04-16 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* decl.c (reshape_init_r): Handle a single element of vector type.
|
||
|
||
2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
PR c++/60765
|
||
* decl2.c (cplus_decl_attributes): Handle
|
||
pointer-to-member-function declarations.
|
||
|
||
2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
PR c++/60764
|
||
* call.c (build_user_type_coversion): Use build_dummy_object
|
||
to create the placeholder object for a constructor method call.
|
||
(build_special_member_call): Likewise.
|
||
(build_over_call): Check for the placeholder object with
|
||
is_dummy_object.
|
||
(build_new_method_call_1): Likewise. Don't attempt to resolve
|
||
a dummy object for a constructor method call.
|
||
|
||
2014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||
|
||
PR c++/59295
|
||
* friend.c (add_friend, make_friend_class): Move repeated friend
|
||
warning under Wredundant_decls.
|
||
|
||
2014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
|
||
* name-lookup.c (pushdecl_maybe_friend_1): Likewise.
|
||
(do_class_using_decl): Likewise.
|
||
* mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
|
||
|
||
2014-04-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR plugins/59335
|
||
* Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
|
||
|
||
2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
|
||
|
||
2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* pt.c (mark_template_parm): Use template_parm_level_and_index.
|
||
|
||
2014-04-11 Jason Merrill <jason@redhat.com>
|
||
|
||
* parser.h (struct cp_token): Rename ambiguous_p to error_reported.
|
||
* parser.c: Adjust.
|
||
(cp_lexer_get_preprocessor_token): Always clear it.
|
||
(cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
|
||
|
||
DR 1467
|
||
PR c++/51747
|
||
* decl.c (reshape_init_r): Handle a single element of class type.
|
||
|
||
DR 1338
|
||
* decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
|
||
built-in operator new.
|
||
|
||
2014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58600
|
||
* name-lookup.c (parse_using_directive): Return early if the
|
||
attribs argument is error_mark_node; use get_attribute_name.
|
||
|
||
2014-04-11 Jason Merrill <jason@redhat.com>
|
||
|
||
DR 1030
|
||
PR c++/51253
|
||
* cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
|
||
* call.c (struct z_candidate): Add flags field.
|
||
(add_candidate): Add flags parm.
|
||
(add_function_candidate, add_conv_candidate, build_builtin_candidate)
|
||
(add_template_candidate_real): Pass it.
|
||
(build_over_call): Set CALL_EXPR_LIST_INIT_P.
|
||
* tree.c (build_aggr_init_expr): Copy it.
|
||
* semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
|
||
|
||
2014-04-10 Richard Biener <rguenther@suse.de>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR ipa/60761
|
||
* error.c (dump_decl) <case FUNCTION_DECL>: If
|
||
DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
|
||
recurse on DECL_ABSTRACT_ORIGIN instead of printing
|
||
<built-in>.
|
||
|
||
2014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
|
||
|
||
* pt.c (check_template_variable): Check for the return of pedwarn
|
||
before emitting a note.
|
||
* parser.c (cp_parser_lambda_introducer): Likewise.
|
||
|
||
2014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/59115
|
||
* pt.c (process_template_parm): For an invalid non-type parameter
|
||
only set TREE_TYPE to error_mark_node.
|
||
(push_inline_template_parms_recursive, comp_template_parms,
|
||
redeclare_class_template, coerce_template_template_parm,
|
||
coerce_template_template_parms, unify): Use error_operand_p.
|
||
|
||
2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* class.c (check_bases_and_members): Warn about non-virtual dtors
|
||
in public bases only. Check warn_ecpp before complaining about
|
||
non-polymorphic bases.
|
||
|
||
2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
|
||
|
||
* decl.c (duplicate_decls): Check for the return of warning_at
|
||
before emitting a note.
|
||
(warn_misplaced_attr_for_class_type): Likewise.
|
||
(check_tag_decl): Likewise.
|
||
|
||
2014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58207
|
||
* semantics.c (sort_constexpr_mem_initializers): Robustify loop.
|
||
|
||
2014-04-04 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
PR c++/44613
|
||
* semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
|
||
* decl.c (cp_finish_decl): Create a new BIND_EXPR before
|
||
instantiating a variable-sized type.
|
||
|
||
PR c++/21113
|
||
* decl.c (decl_jump_unsafe): Consider variably-modified decls.
|
||
|
||
2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
|
||
|
||
* class.c (find_abi_tags_r): Check for the return of warning
|
||
before emitting a note.
|
||
(one_inherited_ctor): Likewise.
|
||
|
||
2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
|
||
|
||
* decl.c (duplicate_decls): Check for the return of permerror
|
||
before emitting a note.
|
||
|
||
2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* class.c (accessible_nvdtor_p): New.
|
||
(check_bases): Don't check base destructor here ...
|
||
(check_bases_and_members): ... check them here. Trigger on
|
||
Wnon-virtual-dtor flag.
|
||
(finish_struct_1): Use accessible_nvdtor_p.
|
||
|
||
2014-04-01 Jason Merrill <jason@redhat.com>
|
||
|
||
* pt.c (process_partial_specialization): Say "not deducible"
|
||
rather than "not used". Use inform.
|
||
|
||
PR c++/60374
|
||
* pt.c (coerce_template_parms): Check that the pack expansion
|
||
pattern works with the first matching parameter.
|
||
|
||
2014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
|
||
|
||
* init.c (perform_member_init): Homogenize uninitialized
|
||
diagnostics.
|
||
|
||
2014-04-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60708
|
||
* call.c (build_array_conv): Call complete_type.
|
||
|
||
PR c++/60713
|
||
* typeck2.c (PICFLAG_SIDE_EFFECTS): New.
|
||
(picflag_from_initializer): Return it.
|
||
(process_init_constructor): Handle it.
|
||
|
||
PR c++/60642
|
||
* decl2.c (is_late_template_attribute): Don't defer abi_tag.
|
||
* mangle.c (write_unqualified_name): Fix abi_tag on templates.
|
||
* pt.c (get_template_info): Handle NAMESPACE_DECL.
|
||
(most_general_template): Handle more kinds of template.
|
||
* tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
|
||
instantiations and specializations.
|
||
|
||
2014-03-31 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
PR c++/44859
|
||
* typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
|
||
COMPONENT_REFs and ARRAY_REFs sooner.
|
||
|
||
2014-03-29 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60626
|
||
* parser.c (cp_parser_init_declarator): Handle erroneous generic type
|
||
usage in non-functions with pushed scope.
|
||
|
||
2014-03-28 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60573
|
||
* name-lookup.h (cp_binding_level): New transient field defining_class_p
|
||
to indicate whether a scope is in the process of defining a class.
|
||
* semantics.c (begin_class_definition): Set defining_class_p.
|
||
* name-lookup.c (leave_scope): Reset defining_class_p.
|
||
* parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
|
||
defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
|
||
unwinding to class-defining scope to handle the erroneous definition of
|
||
a generic function of an arbitrarily nested class within an enclosing
|
||
class.
|
||
|
||
2014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
|
||
|
||
PR c++/52369
|
||
* method.c (walk_field_subobs): Improve the diagnostic
|
||
locations for both REFERENCE_TYPEs and non-static const members.
|
||
* init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
|
||
instead of %qD to be consistent with the c++11 diagnostic.
|
||
|
||
2014-03-25 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60566
|
||
PR c++/58678
|
||
* class.c (build_vtbl_initializer): Handle abstract dtors here.
|
||
* search.c (get_pure_virtuals): Not here.
|
||
|
||
PR c++/60375
|
||
* parser.c (cp_parser_lambda_expression): Don't parse the body of
|
||
a lambda in unevaluated context.
|
||
|
||
PR c++/60628
|
||
* decl.c (create_array_type_for_decl): Complain about array of auto.
|
||
|
||
2014-03-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/60331
|
||
* semantics.c (potential_constant_expression_1): Handle
|
||
DECL_EXPR.
|
||
|
||
2014-03-24 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60627
|
||
* parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
|
||
introducing an implicit function template parameter within an explicit
|
||
instantiation.
|
||
|
||
2014-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60574
|
||
* decl.c (grokdeclarator): Change permerror about 'virtual auto'
|
||
to error.
|
||
|
||
2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60384
|
||
* name-lookup.c (push_class_level_binding_1): Check identifier_p
|
||
on the name argument.
|
||
|
||
2014-03-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/60572
|
||
* init.c (build_zero_init_1): Ignore fields with error_mark_node
|
||
type.
|
||
|
||
2014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/51474
|
||
* call.c (build_new_method_call_1): Handle pure virtuals called by
|
||
NSDMIs too.
|
||
|
||
2014-03-17 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60390
|
||
* parser.c (cp_parser_member_declaration): Don't allow
|
||
finish_fully_implicit_template to consider friend declarations to be
|
||
class member templates.
|
||
(synthesize_implicit_template_parm): Handling winding back through class
|
||
scope to the class being defined in order to inject a template argument
|
||
list.
|
||
|
||
PR c++/60391
|
||
* parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
|
||
function scope as per cp_parser_skip_to_end_of_statement.
|
||
|
||
2014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/59571
|
||
* typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
|
||
|
||
2014-03-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60532
|
||
PR c++/58678
|
||
* search.c (get_pure_virtuals): Handle abstract dtor here.
|
||
(dfs_get_pure_virtuals): Not here.
|
||
|
||
PR c++/58678
|
||
* search.c (dfs_get_pure_virtuals): Treat the destructor of an
|
||
abstract class as pure.
|
||
|
||
2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60383
|
||
* pt.c (maybe_process_partial_specialization): Check return value
|
||
of check_specialization_namespace.
|
||
|
||
2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60254
|
||
* semantics.c (finish_static_assert): Call cxx_constant_value only
|
||
if require_potential_rvalue_constant_expression returns true.
|
||
|
||
2014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60389
|
||
* method.c (get_inherited_ctor): New.
|
||
* cp-tree.h (get_inherited_ctor): Declare it.
|
||
* semantics.c (is_valid_constexpr_fn): Use it.
|
||
|
||
2014-03-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60367
|
||
* call.c (convert_default_arg): Remove special handling for
|
||
CONSTRUCTOR.
|
||
|
||
PR c++/53492
|
||
* parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
|
||
when deciding whether to call push_template_decl for a member class.
|
||
* pt.c (push_template_decl_real): Return after wrong levels error.
|
||
|
||
2014-03-08 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60033
|
||
* pt.c (tsubst_copy): When retrieving a capture pack from a generic
|
||
lambda, remove the lambda's own template argument list prior to fetching
|
||
the specialization.
|
||
|
||
PR c++/60393
|
||
* parser.c (cp_parser_parameter_declaration_clause): Move generic
|
||
function template unwinding on error into a more general location, ...
|
||
(cp_parser_skip_to_end_of_statement): ... here.
|
||
|
||
2014-03-07 Jason Merrill <jason@redhat.com>
|
||
|
||
* Make-lang.in (check_g++_parallelize): Split dg.exp.
|
||
|
||
* parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
|
||
we're in a trailing return type.
|
||
|
||
* typeck.c (comp_template_parms_position): 'auto' and
|
||
'decltype(auto)' are different from real template parms.
|
||
|
||
* parser.c (cp_parser_using_declaration): Consume the semicolon
|
||
after bare parameter pack error.
|
||
|
||
* cp-tree.h (REF_PARENTHESIZED_P): New.
|
||
* semantics.c (force_paren_expr): Set it.
|
||
* pt.c (do_auto_deduction): Check it.
|
||
(tsubst) [COMPONENT_REF]: Copy it.
|
||
* typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
|
||
|
||
* decl.c (create_array_type_for_decl): Only warn about invalid
|
||
C++1y VLA if flag_iso or warn_vla>0.
|
||
(grokdeclarator): Likewise.
|
||
* pt.c (tsubst): Likewise.
|
||
* semantics.c (finish_decltype_type): Likewise.
|
||
* typeck.c (cxx_sizeof_or_alignof_type): Likewise.
|
||
(cp_build_addr_expr_1): Likewise.
|
||
* init.c (build_new_1): Improve diagnostics.
|
||
|
||
2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58609
|
||
* decl.c (check_initializer): Return NULL_TREE after error;
|
||
consistently use inform.
|
||
|
||
2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* decl.c (check_initializer): Remove dead code.
|
||
|
||
2014-03-06 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/60197
|
||
* typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
|
||
of checking tree code.
|
||
|
||
2014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* parser.c (cp_lexer_set_source_position): New.
|
||
(cp_parser_mem_initializer): Use it.
|
||
(cp_parser_postfix_open_square_expression): Likewise.
|
||
(cp_parser_parenthesized_expression_list): Likewise.
|
||
(cp_parser_new_initializer): Likewise.
|
||
(cp_parser_jump_statement): Likewise.
|
||
(cp_parser_initializer): Likewise.
|
||
(cp_parser_functional_cast): Likewise.
|
||
|
||
2014-03-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60409
|
||
* semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
|
||
dependent expression.
|
||
|
||
PR c++/60361
|
||
* parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
|
||
if re-parsing might succeed.
|
||
* semantics.c (finish_id_expression): Use of a parameter outside
|
||
the function body is a parse error.
|
||
|
||
* parser.c (cp_parser_mem_initializer): Set input_location
|
||
properly for init-list warning.
|
||
(cp_parser_postfix_open_square_expression): Likewise.
|
||
(cp_parser_parenthesized_expression_list): Likewise.
|
||
(cp_parser_new_initializer): Likewise.
|
||
(cp_parser_jump_statement): Likewise.
|
||
(cp_parser_initializer): Likewise.
|
||
(cp_parser_functional_cast): Likewise.
|
||
|
||
2014-03-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60417
|
||
* typeck2.c (process_init_constructor_record): Set
|
||
CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
|
||
|
||
PR c++/60415
|
||
PR c++/54359
|
||
* parser.c (cp_parser_direct_declarator): Set declarator to
|
||
cp_error_declarator on invalid qualified-id.
|
||
|
||
2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60376
|
||
* parser.c (cp_parser_using_declaration): Early return when
|
||
cp_parser_nested_name_specifier errors out.
|
||
|
||
2014-03-01 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60377
|
||
* parser.c (cp_parser_parameter_declaration_clause): Unwind generic
|
||
function scope on parse error in function parameter list.
|
||
|
||
2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* method.c (implicitly_declare_fn): Remove redundant
|
||
DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
|
||
* semantics.c (is_instantiation_of_constexpr): Likewise.
|
||
* error.c (dump_function_decl): Likewise.
|
||
|
||
2014-03-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60379
|
||
* semantics.c (begin_maybe_infinite_loop): Use
|
||
fold_non_dependent_expr_sfinae.
|
||
|
||
2014-02-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58845
|
||
* typeck.c (cp_build_binary_op): Sorry on vector&&vector.
|
||
|
||
2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58610
|
||
* cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
|
||
* call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
|
||
* lambda.c (maybe_add_lambda_conv_op): Likewise.
|
||
|
||
2014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60253
|
||
* call.c (convert_arg_to_ellipsis): Return error_mark_node after
|
||
error_at.
|
||
|
||
2014-02-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60353
|
||
PR c++/55877
|
||
* decl2.c (tentative_decl_linkage): Don't mess with functions that
|
||
are not yet defined.
|
||
|
||
2014-02-26 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60347
|
||
PR lto/53808
|
||
* class.c (clone_function_decl): Don't note_vague_linkage_fn.
|
||
* init.c (build_vtbl_address): Do it here.
|
||
|
||
PR c++/59231
|
||
PR c++/11586
|
||
PR c++/14710
|
||
PR c++/57132
|
||
* pt.c (struct warning_sentinel): New.
|
||
(tsubst_copy_and_build): Use it instead of
|
||
c_inhibit_evaluation_warnings.
|
||
* typeck.c (maybe_warn_about_useless_cast): Remove
|
||
c_inhibit_evaluation_warnings check.
|
||
|
||
PR c++/54440
|
||
* pt.c (get_template_parm_index): New.
|
||
(fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
|
||
(process_template_parm): Allow bare packs in template template
|
||
parm template parms.
|
||
(coerce_template_parameter_pack): Handle fixed template template
|
||
parm packs and fixed packs not at the end of the parm list.
|
||
(coerce_template_parms): Handle template parm packs not at the end
|
||
of the parm list.
|
||
(gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
|
||
|
||
PR c++/60182
|
||
* pt.c (unify): Ignore alias templates when deducing a template
|
||
template parameter.
|
||
|
||
PR c++/60345
|
||
Revert:
|
||
DR 1571
|
||
* call.c (reference_binding): Recurse on user-defined conversion.
|
||
(convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
|
||
|
||
2014-02-25 Jason Merrill <jason@redhat.com>
|
||
|
||
DR 1571
|
||
* call.c (reference_binding): Recurse on user-defined conversion.
|
||
(convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
|
||
|
||
* call.c (print_conversion_rejection): Handle n_arg of -2.
|
||
(build_user_type_conversion_1): Pass it.
|
||
|
||
PR c++/55877
|
||
* decl2.c (no_linkage_error): Handle C++98 semantics.
|
||
(reset_type_linkage): Move from decl.c.
|
||
(reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
|
||
(bt_reset_linkage_2, reset_decl_linkage): New.
|
||
(tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
|
||
(cp_write_global_declarations): Move condition into no_linkage_error.
|
||
* decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
|
||
* semantics.c (expand_or_defer_fn_1): Factor out
|
||
tentative_decl_linkage.
|
||
* cp-tree.h: Adjust.
|
||
|
||
* decl2.c (finish_static_data_member_decl): Diagnose static data
|
||
member in unnamed class.
|
||
* class.c (finish_struct_anon_r): Avoid redundant diagnostic.
|
||
|
||
PR lto/53808
|
||
* class.c (clone_function_decl): Call note_vague_linkage_fn for
|
||
defaulted virtual dtor.
|
||
|
||
DR 1286
|
||
PR c++/60328
|
||
* pt.c (get_underlying_template): Fix equivalence calculation.
|
||
|
||
2014-02-25 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60311
|
||
* parser.c (function_being_declared_is_template_p): Return false when
|
||
processing a template parameter list.
|
||
(cp_parser_parameter_declaration_clause): Don't set
|
||
auto_is_implicit_function_template_parm_p when processing a
|
||
template parameter list.
|
||
|
||
* parser.c (synthesize_implicit_template_parm): Inject new template
|
||
argument list appropriately when a generic member function
|
||
of a class template is declared out-of-line.
|
||
|
||
PR c++/60065
|
||
* parser.c (cp_parser_direct_declarator): Don't save and
|
||
restore num_template_parameter_lists around call to
|
||
cp_parser_parameter_declaration_list.
|
||
(function_being_declared_is_template_p): New predicate.
|
||
(cp_parser_parameter_declaration_list): Use
|
||
function_being_declared_is_template_p as predicate for
|
||
inspecting current function template parameter list length
|
||
rather than num_template_parameter_lists.
|
||
|
||
2014-02-24 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60146
|
||
* pt.c (tsubst_omp_for_iterator): Don't let substitution of the
|
||
DECL_EXPR initialize a non-class iterator.
|
||
|
||
PR c++/60312
|
||
* parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
|
||
|
||
2014-02-21 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58170
|
||
* parser.c (cp_parser_type_name): Always check dependency.
|
||
(cp_parser_type_specifier_seq): Call
|
||
cp_parser_parse_and_diagnose_invalid_type_name.
|
||
|
||
PR c++/60108
|
||
* semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
|
||
|
||
PR c++/60185
|
||
* parser.c (cp_parser_default_argument): Clear
|
||
current_class_ptr/current_class_ref like tsubst_default_argument.
|
||
|
||
PR c++/60252
|
||
* lambda.c (maybe_resolve_dummy): Check lambda_function rather
|
||
than current_binding_level.
|
||
|
||
PR c++/60186
|
||
* typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
|
||
|
||
PR c++/60187
|
||
* parser.c (cp_parser_enum_specifier): Call
|
||
check_for_bare_parameter_packs.
|
||
|
||
PR c++/59347
|
||
* pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
|
||
erroneous typedef.
|
||
|
||
PR c++/60241
|
||
* pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
|
||
of the partial instantiation, not the most general template.
|
||
(maybe_process_partial_specialization): Reassign everything on
|
||
that list.
|
||
|
||
PR c++/60216
|
||
* pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
|
||
(check_explicit_specialization): Don't clone.
|
||
|
||
PR c++/60219
|
||
* pt.c (coerce_template_parms): Bail if argument packing fails.
|
||
|
||
PR c++/60224
|
||
* decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
|
||
Don't get confused by a CONSTRUCTOR that already has a type.
|
||
|
||
PR c++/60227
|
||
* call.c (build_array_conv): Don't crash on VLA.
|
||
|
||
PR c++/60248
|
||
* mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
|
||
|
||
PR c++/60252
|
||
* lambda.c (maybe_resolve_dummy): Don't try to capture this
|
||
in declaration context.
|
||
|
||
DR 1591
|
||
PR c++/60051
|
||
* pt.c (unify): Only unify if deducible. Handle 0-length list.
|
||
|
||
PR c++/60250
|
||
* parser.c (cp_parser_direct_declarator): Don't wrap a
|
||
type-dependent expression in a NOP_EXPR.
|
||
|
||
PR c++/60251
|
||
* lambda.c (is_normal_capture_proxy): Handle VLA capture.
|
||
|
||
PR c++/60167
|
||
PR c++/60222
|
||
PR c++/58606
|
||
* parser.c (cp_parser_template_argument): Restore dereference.
|
||
* pt.c (template_parm_to_arg): Dereference non-pack expansions too.
|
||
(process_partial_specialization): Handle deref.
|
||
(unify): Likewise.
|
||
|
||
2014-02-21 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60052
|
||
PR c++/60053
|
||
* parser.c (cp_parser_parameter_declaration_list): Correctly reset
|
||
implicit_template_scope upon leaving an out-of-line generic member
|
||
function definition.
|
||
|
||
2014-02-20 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR c++/58873
|
||
* parser.c (cp_parser_functional_cast): Treat NULL_TREE
|
||
valued type argument as error_mark_node.
|
||
|
||
PR c++/58835
|
||
* semantics.c (finish_fname): Handle error_mark_node.
|
||
|
||
2014-02-19 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60046
|
||
* pt.c (maybe_instantiate_noexcept): Don't instantiate exception
|
||
spec from template context.
|
||
|
||
2014-02-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/56563
|
||
* cp-objcp-common.c (cp_function_decl_explicit_p): Remove
|
||
FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
|
||
|
||
PR c++/60267
|
||
* pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
|
||
|
||
2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60225
|
||
* semantics.c (ensure_literal_type_for_constexpr_object): Use
|
||
strip_array_types.
|
||
|
||
2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60215
|
||
* semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
|
||
During error recovery allow_non_constant may be false.
|
||
|
||
2014-02-18 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/60190
|
||
* parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
|
||
scope whenever a template parameter list has been started, independent
|
||
of whether the function call operator was well-formed or not.
|
||
|
||
PR c++/60064
|
||
* parser.c (cp_parser_member_declaration): Pop fully implicit template
|
||
scope for generic friend declarations as well as for non-friends.
|
||
|
||
2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60047
|
||
* method.c (implicitly_declare_fn): A constructor of a class with
|
||
virtual base classes isn't constexpr (7.1.5p4).
|
||
|
||
2014-02-05 Jan Hubicka <hubicka@ucw.cz
|
||
|
||
* parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
|
||
|
||
2014-02-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/58703
|
||
* parser.c (cp_parser_omp_declare_reduction): Save and free
|
||
declarator_obstack.
|
||
|
||
2014-02-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/53017
|
||
PR c++/59211
|
||
* tree.c (handle_init_priority_attribute): Call default_conversion on
|
||
the attribute argument.
|
||
|
||
2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58871
|
||
* method.c (synthesized_method_walk): If vbases is non-null but
|
||
is_empty is true, likewise don't worry about the virtual bases.
|
||
|
||
2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/51219
|
||
* typeck2.c (process_init_constructor_record): Just skip unnamed
|
||
bit-fields.
|
||
|
||
2014-01-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59469
|
||
* pt.c (mark_decl_instantiated): Call mark_needed.
|
||
|
||
PR c++/58672
|
||
* decl2.c (handle_tls_init): Handle null init fn.
|
||
|
||
PR c++/55800
|
||
* decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
|
||
|
||
2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/59082
|
||
* class.c (build_vfield_ref): Early return error_mark_node if
|
||
TYPE_VFIELD (type) is null.
|
||
(build_base_path): Check return value of build_vfield_ref.
|
||
|
||
2014-01-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59646
|
||
* call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
|
||
[ck_list]: Check for error_mark_node.
|
||
(build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
|
||
|
||
PR c++/57043
|
||
* pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
|
||
during partial ordering.
|
||
|
||
2014-01-31 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/59963
|
||
* typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
|
||
|
||
2014-01-30 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57899
|
||
* cp-tree.h (struct saved_scope): Add x_local_specializations.
|
||
(local_specializations): New macro.
|
||
* pt.c (local_specializations): Remove variable.
|
||
|
||
2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR c++/58708
|
||
* parser.c (make_string_pack): Use double_int::from_buffer.
|
||
|
||
2014-01-30 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/59940
|
||
* typeck.c (build_ptrmemfunc1): Call convert_and_check with
|
||
input_location.
|
||
* cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
|
||
with input_location.
|
||
* call.c (build_conditional_expr_1): Call unsafe_conversion_p with
|
||
loc parameter.
|
||
|
||
2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58843
|
||
* typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
|
||
|
||
2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58649
|
||
* pt.c (lookup_template_class_1): Check start_enum return value
|
||
for error_mark_node.
|
||
|
||
2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* decl.c (duplicate_decls, typename_hash, typename_compare):
|
||
Use TYPE_IDENTIFIER.
|
||
* error.c (dump_type): Likewise.
|
||
* mangle.c (dump_substitution_candidates): Likewise.
|
||
|
||
2014-01-30 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59633
|
||
* decl2.c (attributes_naming_typedef_ok): New.
|
||
* cp-tree.h: Declare it.
|
||
* decl.c (grokdeclarator): Check it.
|
||
* tree.c (no_linkage_check): Handle VECTOR_TYPE.
|
||
|
||
2014-01-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59707
|
||
* call.c (add_builtin_candidate): Catch dependent types.
|
||
|
||
PR c++/59989
|
||
* pt.c (expand_template_argument_pack): Correct
|
||
non_default_args_count calculation.
|
||
|
||
PR c++/58466
|
||
* pt.c (unify_pack_expansion): Call expand_template_argument_pack.
|
||
|
||
PR c++/59956
|
||
* friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
|
||
have a friend template in a class template.
|
||
* pt.c (tsubst_friend_function): Look through it.
|
||
(push_template_decl_real): A friend member template is
|
||
primary.
|
||
|
||
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58846
|
||
* decl.c (get_dso_handle_node): Don't crash if dso_handle_node
|
||
== error_mark_node.
|
||
|
||
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58674
|
||
* pt.c (instantiate_template_1): Check for error_mark_node the second
|
||
argument too.
|
||
|
||
2014-01-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59916
|
||
* optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
|
||
cdtor_returns_this case.
|
||
|
||
PR c++/59315
|
||
* decl.c (cxx_maybe_build_cleanup): Call mark_used.
|
||
|
||
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58702
|
||
* semantics.c (finish_omp_reduction_clause): Check type for
|
||
error_mark_node.
|
||
|
||
2014-01-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59791
|
||
* pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
|
||
(tsubst_copy): Use it if lookup fails.
|
||
|
||
PR c++/59818
|
||
* pt.c (tsubst_function_type): Make sure we keep the same function
|
||
quals.
|
||
|
||
PR c++/58701
|
||
* semantics.c (build_anon_member_initialization): Stop walking
|
||
when we run out of COMPONENT_REFs.
|
||
|
||
PR c++/58632
|
||
* decl.c (lookup_and_check_tag): Ignore template parameters if
|
||
scope == ts_current.
|
||
* pt.c (check_template_shadow): Don't complain about the injected
|
||
class name.
|
||
|
||
* decl.c (duplicate_decls): Tweak.
|
||
|
||
PR c++/53756
|
||
* mangle.c (write_unqualified_name): Handle operator auto.
|
||
|
||
2014-01-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59823
|
||
Core DR 1138
|
||
* call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
|
||
list-initialization. A conversion to rvalue ref that involves
|
||
an lvalue-rvalue conversion is bad.
|
||
(convert_like_real): Give helpful error message.
|
||
|
||
PR c++/54652
|
||
* decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
|
||
|
||
PR c++/58504
|
||
* pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
|
||
types.
|
||
|
||
PR c++/58606
|
||
* pt.c (template_parm_to_arg): Call convert_from_reference.
|
||
(tsubst_template_arg): Don't strip reference refs.
|
||
|
||
PR c++/58639
|
||
* call.c (build_aggr_conv): Reject value-initialization of reference.
|
||
|
||
PR c++/58812
|
||
PR c++/58651
|
||
* call.c (convert_like_real): Give helpful error about excess braces
|
||
for ck_rvalue of scalar type.
|
||
|
||
Core DR 1288
|
||
* call.c (reference_binding): Only elide braces if the single
|
||
element is reference-related.
|
||
|
||
PR c++/58814
|
||
* typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
|
||
stabilizing.
|
||
|
||
PR c++/58837
|
||
* typeck.c (cp_truthvalue_conversion): Use explicit comparison for
|
||
FUNCTION_DECL.
|
||
|
||
PR c++/59097
|
||
* decl.c (compute_array_index_type): Don't call
|
||
maybe_constant_value for a non-integral expression.
|
||
|
||
2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||
|
||
* call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
|
||
flag_cilkplus.
|
||
* cp-gimplify.c (cp_genericize): Likewise.
|
||
* decl.c (grokfndecl): Likewise.
|
||
* parser.c (cp_parser_postfix_expression): Likewise.
|
||
(cp_parser_postfix_open_square_expression): Likewise.
|
||
(cp_parser_direct_declarator): Likewise.
|
||
(is_cilkplus_vector_p): Likewise.
|
||
(cp_parser_omp_clause_name): Likewise.
|
||
(cp_parser_omp_all_clauses): Likewise.
|
||
* pt.c (apply_late_template_attributes): Likewise.
|
||
* typeck.c (cp_build_array_ref): Likewise.
|
||
(cp_build_compound_expr): Likewise.
|
||
(check_return_expr): Likewise.
|
||
|
||
2014-01-24 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58550
|
||
* decl.c (grokdeclarator): Turn pedwarn about auto return type in
|
||
c++11 into error.
|
||
|
||
PR c++/59886
|
||
PR c++/59659
|
||
* typeck2.c (process_init_constructor_array): Don't create
|
||
RANGE_EXPR yet.
|
||
|
||
2014-01-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* typeck2.c (split_nonconstant_init_1): Fix num_split_elts
|
||
handling for RANGE_ARRAY case.
|
||
|
||
2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/57524
|
||
* name-lookup.c (push_using_directive): Use timevar_cond_start.
|
||
|
||
2014-01-23 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/59846
|
||
* typeck.c (cp_build_binary_op): Pass location to shorten_compare.
|
||
|
||
2014-01-23 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/58346
|
||
* typeck.c (pointer_diff): Give an error on arithmetic on pointer to
|
||
an empty aggregate.
|
||
|
||
2014-01-23 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/55189
|
||
* cp-tree.h (struct language_function): Add infinite_loop and
|
||
infinite_loops.
|
||
(current_function_infinite_loop): New.
|
||
* semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
|
||
(break_maybe_infinite_loop): New.
|
||
(finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
|
||
(finish_do_stmt, finish_for_cond, finish_for_stmt)
|
||
(begin_range_for_stmt): Use them.
|
||
* decl.c (finish_function): Don't warn about missing return
|
||
if current_function_infinite_loop.
|
||
* pt.c (instantiate_decl): Copy current_function_infinite_loop.
|
||
* parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
|
||
|
||
* call.c (build_op_delete_call): Use make_tree_vector and
|
||
release_tree_vector.
|
||
|
||
2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58980
|
||
* parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
|
||
nested_name_specifier.
|
||
|
||
2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||
|
||
* parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
|
||
see if there is an attribute after function decl. If so, then
|
||
parse them now.
|
||
(cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
|
||
enabled function late parsing.
|
||
(cp_parser_gnu_attribute_list): Parse all the tokens for the vector
|
||
attribute for a SIMD-enabled function.
|
||
(cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
|
||
the function is used by SIMD-enabled function (indicated by NULL
|
||
pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
|
||
PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
|
||
(cp_parser_cilk_simd_vectorlength): Modified this function to handle
|
||
vectorlength clause in SIMD-enabled function and #pragma SIMD's
|
||
vectorlength clause. Added a new bool parameter to differentiate
|
||
between the two.
|
||
(cp_parser_cilk_simd_fn_vector_attrs): New function.
|
||
(is_cilkplus_vector_p): Likewise.
|
||
(cp_parser_late_parsing_elem_fn_info): Likewise.
|
||
(cp_parser_omp_clause_name): Added a check for "mask", "nomask"
|
||
and "vectorlength" clauses when Cilk Plus is enabled.
|
||
(cp_parser_omp_clause_linear): Added a new parameter of type bool
|
||
and emit a sorry message when step size is a parameter.
|
||
* parser.h (cp_parser::cilk_simd_fn_info): New field.
|
||
* decl.c (grokfndecl): Added flag_enable_cilkplus along with
|
||
flag_openmp.
|
||
* pt.c (apply_late_template_attributes): Likewise.
|
||
|
||
2014-01-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/58809
|
||
* semantics.c (finish_omp_reduction_clause): Reject
|
||
BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
|
||
|
||
2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
PR c++/59482
|
||
* parser.c (cp_parser_class_head): Push the class before parsing
|
||
the base-clause, pop after it.
|
||
|
||
2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* decl2.c (cpp_check): Revert prototype change.
|
||
|
||
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/59270
|
||
PR c++/58811
|
||
* init.c (build_value_init_noctor): Don't pass error_mark_node to
|
||
build_value_init.
|
||
|
||
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/59269
|
||
* init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
|
||
only when errorcount == 0.
|
||
|
||
2014-01-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/59838
|
||
* cvt.c (ocp_convert): Don't segfault on non-existing
|
||
ENUM_UNDERLYING_TYPE.
|
||
|
||
2014-01-16 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59821
|
||
* tree.c (bot_manip): Update the location of builtin_LINE and
|
||
builtin_FILE calls.
|
||
|
||
2014-01-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59659
|
||
* typeck2.c (massage_init_elt): New.
|
||
(process_init_constructor_record)
|
||
(process_init_constructor_union): Use it.
|
||
(process_init_constructor_array): Use it. Use RANGE_EXPR.
|
||
(split_nonconstant_init_1): Handle it.
|
||
* semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
|
||
|
||
2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||
|
||
PR c++/59631
|
||
* parser.c (cp_parser_postfix_expression): Added a new if-statement
|
||
and replaced an existing if-statement with else-if statement.
|
||
Changed an existing error message wording to match the one from the C
|
||
parser.
|
||
|
||
2014-01-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59614
|
||
* class.c (abi_tag_data): Add tags field.
|
||
(check_abi_tags): Initialize it.
|
||
(find_abi_tags_r): Support collecting missing tags.
|
||
(mark_type_abi_tags): Don't look at template args.
|
||
(inherit_targ_abi_tags): New.
|
||
(check_bases_and_members): Use it.
|
||
* cp-tree.h (ABI_TAG_IMPLICIT): New.
|
||
* mangle.c (write_abi_tags): Check it.
|
||
|
||
2014-01-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58856
|
||
* pt.c (num_innermost_template_parms): New.
|
||
(get_underlying_template): Use it.
|
||
|
||
PR c++/58965
|
||
* mangle.c (write_guarded_var_name): Handle null DECL_NAME.
|
||
|
||
2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
|
||
the letter of 20.11.6 about Base and Derived naming the same
|
||
class type modulo cv-qualifiers.
|
||
|
||
2014-01-06 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/59635
|
||
* lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
|
||
function as unimplemented for generic lambdas with varargs.
|
||
|
||
PR c++/59636
|
||
* parser.c (cp_parser_template_parameter): Early out with
|
||
error_mark_node if parameter declaration was not parsed.
|
||
|
||
PR c++/59629
|
||
* parser.c (cp_parser_lambda_expression): Save/reset/restore
|
||
auto_is_implicit_function_template_parm_p around lambda body.
|
||
|
||
PR c++/59638
|
||
* parser.c (cp_parser_init_declarator): Undo fully implicit
|
||
template parameter list when declarator is not a function.
|
||
|
||
2014-01-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/58950
|
||
* cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
|
||
|
||
2014-01-03 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR c++/58567
|
||
* pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
|
||
|
||
2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
Core DR 1442
|
||
PR c++/59165
|
||
* parser.c (cp_parser_perform_range_for_lookup): Don't pass true
|
||
as include_std to perform_koenig_lookup.
|
||
(cp_parser_postfix_expression): Adjust.
|
||
* pt.c (tsubst_copy_and_build): Likewise.
|
||
* semantics.c (perform_koenig_lookup): Remove bool parameter.
|
||
(omp_reduction_lookup): Adjust.
|
||
* name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
|
||
(lookup_arg_dependent): Likewise.
|
||
(lookup_function_nonclass): Adjust.
|
||
* name-lookup.h: Adjust declaration.
|
||
* cp-tree.h: Likewise.
|
||
|
||
2014-01-02 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/59087
|
||
* parser.c (cp_parser_userdef_numeric_literal): Mention
|
||
-fext-numeric-literals in the message.
|
||
|
||
2014-01-02 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/59641
|
||
* call.c (build_conditional_expr_1): Check the return value of
|
||
force_rvalue.
|
||
|
||
2014-01-02 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* call.c (convert_like_real): Check complain.
|
||
|
||
2014-01-02 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/59378
|
||
* typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
|
||
in templates.
|
||
|
||
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
Update copyright years
|
||
|
||
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
|
||
the standard form for the copyright notice.
|
||
|
||
Copyright (C) 2014 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.
|