aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/cp/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/cp/ChangeLog')
-rw-r--r--gcc-4.9/gcc/cp/ChangeLog974
1 files changed, 974 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/cp/ChangeLog b/gcc-4.9/gcc/cp/ChangeLog
new file mode 100644
index 000000000..e0229906d
--- /dev/null
+++ b/gcc-4.9/gcc/cp/ChangeLog
@@ -0,0 +1,974 @@
+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.