| 2014-08-26 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58624 |
| * pt.c (tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper. |
| * semantics.c (finish_id_expression): Don't call TLS wrapper in a |
| template. |
| |
| 2014-08-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/62129 |
| * class.c (outermost_open_class): New. |
| * cp-tree.h: Declare it. |
| * decl.c (maybe_register_incomplete_var): Use it. |
| (complete_vars): Handle any constant variable. |
| * expr.c (cplus_expand_constant): Handle CONSTRUCTOR. |
| |
| 2014-08-22 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| PR other/62008 |
| * cp-array-notation.c (build_array_notation_ref): Added correct |
| handling of case with incorrect array. |
| |
| 2014-08-19 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61214 |
| PR tree-optimization/62091 |
| * decl2.c (decl_needed_p): Return true for virtual functions when |
| devirtualizing. |
| |
| Backport: |
| PR c++/61566 |
| * pt.c (instantiate_class_template_1): Ignore lambda on |
| CLASSTYPE_DECL_LIST. |
| (push_template_decl_real): A lambda is not primary. |
| * lambda.c (maybe_add_lambda_conv_op): Distinguish between being |
| currently in a function and the lambda living in a function. |
| |
| Backport: |
| PR c++/60417 |
| * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on |
| init-list for trailing elements. |
| * typeck2.c (process_init_constructor_array): Likewise. |
| |
| 2014-08-07 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61959 |
| * semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR. |
| |
| PR c++/61994 |
| * init.c (build_vec_init): Leave atype an ARRAY_TYPE |
| if we're just returning an INIT_EXPR. |
| |
| PR c++/60872 |
| * call.c (standard_conversion): Don't try to apply restrict to void. |
| |
| PR c++/58714 |
| * tree.c (stabilize_expr): A stabilized prvalue is an xvalue. |
| |
| 2014-08-01 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint |
| in error output. |
| |
| 2014-08-01 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| PR other/61963 |
| * parser.c (cp_parser_array_notation): Added check for array_type. |
| |
| 2014-08-01 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| PR middle-end/61455 |
| * cp-array-notation.c (expand_array_notation_exprs): Handling of |
| DECL_EXPR improved. Changed handling for INIT_EXPR. |
| |
| 2014-07-16 Release Manager |
| |
| * GCC 4.9.1 released. |
| |
| 2014-07-13 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58636 |
| * call.c (build_list_conv): Don't try to build a list of references. |
| |
| 2014-07-10 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61661 |
| * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR. |
| |
| 2014-07-01 Paul Pluzhnikov <ppluzhnikov@google.com> |
| |
| PR c++/58753 |
| PR c++/58930 |
| PR c++/58704 |
| |
| Backported from mainline |
| 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * typeck2.c (digest_nsdmi_init): New. |
| * parser.c (cp_parser_late_parse_one_default_arg): Use it. |
| * init.c (get_nsdmi): Likewise. |
| * cp-tree.h (digest_nsdmi_init): Declare. |
| |
| 2014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net> |
| |
| PR c++/58781 |
| PR c++/60249 |
| PR c++/59867 |
| * parser.c (cp_parser_userdef_string_literal()): Take a tree |
| not a cp_token*. (cp_parser_string_literal(): Don't hack |
| the token stream! |
| |
| 2014-06-30 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61647 |
| * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE. |
| |
| PR c++/61566 |
| * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL. |
| |
| 2014-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| Backported from mainline |
| 2014-06-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * semantics.c (finish_omp_clauses): Make sure |
| OMP_CLAUSE_LINEAR_STEP has correct type. |
| |
| 2014-06-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq * |
| argument. |
| * cp-tree.h (cxx_omp_finish_clause): Adjust prototype. |
| |
| 2014-06-30 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61539 |
| * pt.c (unify_one_argument): Type/expression mismatch just causes |
| deduction failure. |
| |
| DR 1030 |
| PR c++/51253 |
| PR c++/61382 |
| * 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): Copy it. |
| * cp-gimplify.c (cp_gimplify_expr): Handle it. |
| |
| PR c++/61488 |
| * pt.c (check_valid_ptrmem_cst_expr): Fix for template context. |
| |
| PR c++/61500 |
| * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR. |
| |
| 2014-06-30 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| PR middle-end/57541 |
| * cp-array-notation.c (expand_sec_reduce_builtin): |
| Check that bultin argument is correct. |
| * call.c (build_cxx_call): Check for 0 arguments in builtin call. |
| |
| 2014-06-27 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61433 |
| * error.c (dump_template_bindings): Don't tsubst in a clone. |
| |
| 2014-06-27 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/61614 |
| * semantics.c (finish_compound_literal): Revert r204228. |
| |
| 2014-06-26 Adam Butcher <adam@jessamine.co.uk> |
| |
| PR c++/61537 |
| * parser.c (cp_parser_elaborated_type_specifier): Only consider template |
| parameter lists outside of function parameter scope. |
| |
| 2014-06-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61242 |
| * call.c (build_aggr_conv): Ignore passed in flags. |
| (build_array_conv, build_complex_conv): Likewise. |
| |
| 2014-06-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * parser.c (cp_parser_omp_for_loop): For |
| #pragma omp parallel for simd move lastprivate clause from parallel |
| to for rather than simd. |
| |
| 2014-06-20 Jason Merrill <jason@redhat.com> |
| |
| PR c++/59296 |
| * call.c (add_function_candidate): Avoid special 'this' handling |
| if we have a ref-qualifier. |
| |
| PR c++/61556 |
| * call.c (build_over_call): Call build_this in template path. |
| |
| 2014-06-19 Jason Merrill <jason@redhat.com> |
| |
| PR c++/59296 |
| * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND |
| |LOOKUP_NO_TEMP_BIND for ref-qualifier handling. |
| |
| PR c++/61507 |
| * pt.c (resolve_overloaded_unification): Preserve |
| ARGUMENT_PACK_EXPLICIT_ARGS. |
| |
| 2014-06-18 Jason Merrill <jason@redhat.com> |
| |
| PR c++/60605 |
| * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P. |
| |
| 2014-06-18 Siva Chandra Reddy <sivachandra@google.com> |
| |
| PR debug/57519 |
| * class.c (handle_using_decl): Pass the correct scope to |
| cp_emit_debug_info_for_using. |
| |
| 2014-06-09 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61343 |
| * decl.c (check_initializer): Maybe clear |
| DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. |
| |
| 2014-06-04 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| PR c/58942 |
| * c-c++-common/cilk-plus/AN/pr58942.c: Check for correct handling of |
| the case with a pointer. |
| |
| 2014-06-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61134 |
| * pt.c (pack_deducible_p): Handle canonicalization. |
| |
| 2014-05-21 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| PR c/60189 |
| * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync |
| from here to... |
| (cp_parser_statement): ...here. Make sure only semicolon can go after |
| Cilk_sync. |
| |
| 2014-05-13 Jason Merrill <jason@redhat.com> |
| |
| PR c++/61151 |
| * lambda.c (is_this): Allow capture proxies too. |
| |
| DR 5 |
| PR c++/60019 |
| * call.c (build_user_type_conversion_1): The copy-init temporary |
| is cv-unqualified. |
| |
| 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-06 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/60999 |
| * pt.c (maybe_begin_member_template_processing): Use |
| uses_template_parms. |
| |
| 2014-05-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/60992 |
| * lambda.c (lambda_capture_field_type): Wrap anything dependent |
| other than 'this' or a VLA. |
| (is_this): New. |
| * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if |
| the operand was static or constant. |
| |
| 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-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-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-22 Release Manager |
| |
| * GCC 4.9.0 released. |
| |
| 2014-04-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR plugins/59335 |
| * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h. |
| |
| 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. |