diff options
Diffstat (limited to 'gcc-4.9/gcc/cp/ChangeLog')
-rw-r--r-- | gcc-4.9/gcc/cp/ChangeLog | 974 |
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. |