613 lines
20 KiB
Plaintext
613 lines
20 KiB
Plaintext
2017-02-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/79301
|
||
* parser.c (cp_parser_std_attribute): Don't pedwarn about
|
||
[[deprecated]] with -std=c++11 and [[fallthrough]] with
|
||
-std=c++11 and -std=c++14.
|
||
|
||
PR c++/79288
|
||
* decl.c (grokdeclarator): For static data members, handle thread_p
|
||
only after handling inline.
|
||
|
||
2017-02-14 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/79420
|
||
PR c++/79463
|
||
* parser.c (cp_parser_postfix_dot_deref_expression): Avoid
|
||
clobbering if the postfix expression isn't an EXPR_P.
|
||
|
||
2017-02-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/79461 - ICE with lambda in constexpr constructor
|
||
* constexpr.c (build_data_member_initialization): Ignore
|
||
initialization of a local variable.
|
||
|
||
2017-02-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* init.c (warn_placement_new_too_small): Add missing space in
|
||
diagnostics.
|
||
* parser.c (cp_parser_oacc_declare): Likewise.
|
||
* mangle.c (maybe_check_abi_tags): Likewise.
|
||
|
||
PR c++/79232
|
||
* typeck.c (cp_build_modify_expr): Handle properly COMPOUND_EXPRs
|
||
on lhs that have {PRE{DEC,INC}REMENT,MODIFY,MIN,MAX,COND}_EXPR
|
||
in the rightmost operand.
|
||
|
||
2017-02-13 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/79296 - ICE mangling localized template instantiation
|
||
* decl2.c (determine_visibility): Use template fn context for
|
||
local class instantiations.
|
||
|
||
2017-02-11 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/77659 - ICE with new and C++14 aggregate NSDMI
|
||
* init.c (build_new): Make backups of any CONSTRUCTORs in init.
|
||
(build_new_1): Use replace_placeholders.
|
||
* tree.c (replace_placeholders_t): Also track whether we've seen a
|
||
placeholder.
|
||
(replace_placeholders, replace_placeholders_r): Adjust.
|
||
* cp-tree.h: Adjust.
|
||
|
||
PR c++/77790 - ICE with auto function in C++11 mode
|
||
* decl.c (undeduced_auto_decl): Remove C++14 limitation.
|
||
(require_deduced_type): Add complain parm, return bool.
|
||
* cp-tree.h: Adjust.
|
||
* decl2.c (mark_used): Use require_deduced_type.
|
||
|
||
2017-02-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/78908 - template ops and bitfields
|
||
* tree.c (build_min_non_dep): Use unlowered_expr_type.
|
||
|
||
PR c++/78897 - constexpr union
|
||
* constexpr.c (cxx_eval_store_expression): A store to a union member
|
||
erases a previous store to another member.
|
||
|
||
PR c++/71285 - member of fold-expression
|
||
* semantics.c (finish_unary_fold_expr)
|
||
(finish_binary_fold_expr): Use null type for fold-expressions.
|
||
|
||
PR c++/79401 - protected inherited constructor
|
||
* call.c (enforce_access): For inheriting constructor, find a base
|
||
binfo in the path we already have.
|
||
|
||
2017-02-10 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/79435
|
||
* pt.c (type_dependent_expression_p): Check if the expression type
|
||
is null.
|
||
|
||
PR c++/79184
|
||
* cvt.c (ocp_convert): Add a sentinel against -Wint-in-bool-context
|
||
if warnings shouldn't be given.
|
||
|
||
2017-02-10 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/71737
|
||
* pt.c (tsubst_decl): Don't try to preserve a typedef that names
|
||
an error_mark_node as type.
|
||
|
||
2017-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/79143
|
||
* pt.c (instantiate_class_template_1): Copy CLASSTYPE_NON_AGGREGATE
|
||
from pattern to type.
|
||
|
||
2017-02-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/79316 - default argument in deduction guide
|
||
PR c++/79350 - explicit deduction guide
|
||
* parser.c (cp_parser_constructor_declarator_p)
|
||
(cp_parser_direct_declarator): Parse deduction guides more like
|
||
constructors.
|
||
* cp-tree.h (enum special_function_kind): Add sfk_deduction_guide.
|
||
* tree.c (special_function_p): Return it.
|
||
* decl.c (check_special_function_return_type): Handle it.
|
||
(grokdeclarator, grokfndecl): Adjust.
|
||
(cp_finish_decl): Pass flags to do_auto_deduction.
|
||
* error.c (dump_decl_name): Use TFF_UNQUALIFIED_NAME.
|
||
* pt.c (dguide_name_p): Take a const_tree.
|
||
(do_class_deduction): Handle explicit.
|
||
(do_auto_deduction): Pass flags through.
|
||
(build_deduction_guide): Copy explicit flag.
|
||
|
||
2017-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/79429
|
||
* parser.c (cp_parser_omp_ordered): Don't check for non-pragma_stmt
|
||
non-pragma_compound context here.
|
||
(cp_parser_omp_target): Likewise.
|
||
(cp_parser_pragma): Don't call push_omp_privatization_clauses and
|
||
parsing for ordered and target omp pragmas in non-pragma_stmt
|
||
non-pragma_compound contexts.
|
||
|
||
PR c/79431
|
||
* parser.c (cp_parser_oacc_declare): Formatting fix.
|
||
(cp_parser_omp_declare_target): Don't invoke symtab_node::get on
|
||
automatic variables.
|
||
|
||
2016-02-09 Nathan Sidwell <nathan@codesourcery.com>
|
||
Chung-Lin Tang <cltang@codesourcery.com>
|
||
|
||
* parser.c (cp_parser_oacc_clause_tile): Disallow collapse. Fix
|
||
parsing. Parse constant expression. Remove semantic checking.
|
||
(cp_parser_omp_clause_collapse): Disallow tile.
|
||
(cp_parser_omp_for_loop): Deal with tile clause. Don't emit a parse
|
||
error about missing for after already emitting one. Use more
|
||
conventional for idiom for unbounded loop.
|
||
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE.
|
||
* semantics.c (finish_omp_clauses): Correct TILE semantic check.
|
||
(finish_omp_for): Deal with tile clause.
|
||
|
||
2017-02-07 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* method.c (synthesized_method_base_walk): New. Broken out of ...
|
||
(synthesized_method_walk): ... here. Call it. Cleanup
|
||
initializations.
|
||
|
||
2017-02-07 Patrick Palka <ppalka@gcc.gnu.org>
|
||
|
||
PR c++/79360
|
||
* typeck2.c (process_init_constructor_union): Consider only
|
||
FIELD_DECLs when looking for an NSDMI.
|
||
|
||
2017-02-06 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/71193 - incomplete types in templates
|
||
* parser.c (cp_parser_postfix_dot_deref_expression): In a template
|
||
handle incomplete type by pedwarning and then treating as dependent.
|
||
|
||
2017-02-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/79379
|
||
* constexpr.c (cxx_eval_constant_expression): Handle ANNOTATE_EXPR.
|
||
(potential_constant_expression_1): Likewise.
|
||
|
||
PR c++/79377
|
||
* tree.c (build_min_non_dep_op_overload): For POST{INC,DEC}REMENT_EXPR
|
||
allow one fewer than expected arguments if flag_permissive.
|
||
|
||
PR c++/79372
|
||
* decl.c (cp_finish_decomp): On error set decl type to error_mark_node.
|
||
* pt.c (tsubst_expr): Don't call tsubst_decomp_names on decompositions
|
||
with error_mark_node type.
|
||
|
||
2017-02-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/78689 - ICE on constructor with label
|
||
* optimize.c (maybe_clone_body): Replace omitted parameters with
|
||
null lvalues.
|
||
* class.c (build_clone): Fix logic for omitting inherited parms.
|
||
|
||
PR c++/12245 - excessive memory use
|
||
* constexpr.c (maybe_constant_value): Fold maybe_constant_value_1
|
||
back in. Don't cache constants.
|
||
(maybe_constant_init): Don't cache constants.
|
||
|
||
PR c++/79294 - ICE with invalid template argument
|
||
* pt.c (convert_nontype_argument_function): Check value-dependence.
|
||
(convert_nontype_argument): Don't check it here for function ptrs.
|
||
|
||
2017-02-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR cp/14179
|
||
* cp-gimplify.c (cp_fold): When folding a CONSTRUCTOR copy
|
||
it lazily on the first changed element only and copy it
|
||
fully upfront, only storing changed elements.
|
||
|
||
2017-02-02 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/69637
|
||
* decl2.c (grokbitfield): In case of error don't set-up DECL_INITIAL
|
||
to the width.
|
||
|
||
2017-01-31 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/79304
|
||
* error.c (dump_expr) <case COMPONENT_REF>: Don't print .
|
||
after ARROW_EXPR.
|
||
|
||
2017-01-31 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR c++/79298
|
||
* name-lookup.c (suggest_alternative_in_explicit_scope): Resolve
|
||
any namespace aliases.
|
||
|
||
2017-01-31 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/79290
|
||
* typeck.c (build_ptrmemfunc_access_expr): Set TREE_NO_WARNING.
|
||
|
||
PR c++/67273
|
||
PR c++/79253
|
||
* pt.c: (instantiate_decl): Push to top level when current
|
||
function scope doesn't match. Only push lmabda scope stack when
|
||
pushing to top.
|
||
|
||
* cp-tree.h (instantiate_decl): Make defer_ok bool.
|
||
* pt.c: Fix instantiate_decl calls to pass true/false not 0/1
|
||
(instantiate_decl): Simplify and reorder state saving and restoration.
|
||
|
||
PR c++/79264
|
||
* lambda.c (maybe_generic_this_capture): Deal with template-id-exprs.
|
||
* semantics.c (finish_member_declaration): Assert class is being
|
||
defined.
|
||
|
||
2017-01-30 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
Introduce C++ support in libcc1.
|
||
* cp-tree.h (struct lang_identifier): Add oracle_looked_up.
|
||
(ansi_opname): Rename to...
|
||
(cp_operator_id): ... this. Adjust all callers.
|
||
(ansi_assopname): Rename to...
|
||
(cp_assignment_operator_id): ... this. Adjust all callers.
|
||
(cp_literal_operator_id): Declare.
|
||
(set_global_friend): Declare.
|
||
(is_global_friend): Declare.
|
||
(enum cp_oracle_request): New type.
|
||
(cp_binding_oracle_function): New type.
|
||
(cp_binding_oracle): Declare.
|
||
(cp_finish_injected_record_type): Declare.
|
||
* friend.c (global_friend): New var.
|
||
(set_global_friend): New fn.
|
||
(is_global_friend): New fn.
|
||
(is_friend): Call is_global_friend.
|
||
* name-lookup.c (cp_binding_oracle): New var.
|
||
(query_oracle): New fn.
|
||
(qualified_lookup_using_namespace): Call query_oracle.
|
||
(lookup_name_real_1): Likewise.
|
||
* parser.c (cp_literal_operator_id): Drop static.
|
||
* search.c (friend_accessible_p): Call is_global_friend.
|
||
* semantics.c (is_this_parameter): Accept a variable if the
|
||
binding oracle is enabled.
|
||
|
||
2017-01-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/78771 - ICE with inherited constructor.
|
||
* call.c (build_over_call): Call deduce_inheriting_ctor here.
|
||
* pt.c (tsubst_decl): Not here.
|
||
* class.c (add_method): Or here.
|
||
* method.c (deduce_inheriting_ctor): Handle clones.
|
||
(implicitly_declare_fn): Don't deduce inheriting ctors yet.
|
||
|
||
2017-01-27 Adam Butcher <adam@jessamine.co.uk>
|
||
|
||
PR c++/64382
|
||
* cp/parser.c (parsing_default_capturing_generic_lambda_in_template):
|
||
New function.
|
||
* cp/cp-tree.h: Declare it.
|
||
* cp/semantics.c (finish_id_expression): Resolve names within a default
|
||
capturing generic lambda defined within a template prior to
|
||
instantiation to allow for captures to be added to the closure type.
|
||
|
||
2017-01-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/68727
|
||
* cp-tree.def (OFFSETOF_EXPR): Bump number of operands to 2.
|
||
* cp-tree.h (finish_offsetof): Add OBJECT_PTR argument.
|
||
* parser.c (cp_parser_builtin_offsetof): Pass result of
|
||
build_static_cast of null_pointer_node to finish_offsetof.
|
||
* semantics.c (finish_offsetof): Add OBJECT_PTR argument, use
|
||
it for -Winvalid-offsetof pedwarn instead of trying to guess
|
||
original offsetof type from EXPR. Save OBJECT_PTR as a new
|
||
second operand to OFFSETOF_EXPR.
|
||
* pt.c (tsubst_copy_and_build) <case OFFSETOF_EXPR>: Adjust
|
||
finish_offsetof caller, pass the second operand of OFFSETOF_EXPR
|
||
as OBJECT_PTR.
|
||
|
||
2017-01-26 Jason Merrill <jason@redhat.com>
|
||
|
||
* name-lookup.c (parse_using_directive): Deprecate strong using.
|
||
|
||
PR c++/79176 - lambda ICE with -flto -Os
|
||
* decl2.c (vague_linkage_p): Handle decloned 'tors.
|
||
* tree.c (decl_linkage): Likewise.
|
||
|
||
2017-01-25 Martin Sebor <msebor@redhat.com>
|
||
|
||
* decl.c (grokdeclarator): Fix a typo in a comment.
|
||
|
||
2017-01-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/78896
|
||
* decl.c (cp_finish_decomp): Disallow memberwise decomposition of
|
||
lambda expressions.
|
||
|
||
PR c++/77914
|
||
* parser.c (cp_parser_lambda_declarator_opt): Pedwarn with
|
||
OPT_Wpedantic on lambda templates for -std=c++14 and higher.
|
||
|
||
2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
|
||
|
||
PR lto/79061
|
||
* decl.c (cxx_init_decl_processing): Pass main_input_filename
|
||
to build_translation_unit_decl.
|
||
|
||
2017-01-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/79205
|
||
* cp-gimplify.c (cp_genericize_r): Add result of
|
||
convert_from_reference on invisiref parm to p_set.
|
||
|
||
2017-01-24 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/78469 - defaulted ctor and inaccessible dtor
|
||
* cp-tree.h (tsubst_flags): Add tf_no_cleanup.
|
||
* init.c (build_new_1): Pass tf_no_cleanup to build_value_init.
|
||
* tree.c (build_target_expr): Check tf_no_cleanup.
|
||
|
||
PR c++/79118 - anon-members and constexpr
|
||
* constexpr.c (cx_check_missing_mem_inits): Caller passes type not
|
||
ctor decl. Recursively check anonymous members.
|
||
(register_constexpr_fundef): Adjust cx_check_missing_mem_inits
|
||
call.
|
||
(explain_invalid_constexpr_fn): Likewise.
|
||
|
||
2017-01-23 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/71710 - template using directive of field
|
||
* pt.c (tsubst_copy_and_build [COMPONENT_REF]): Move FIELD_DECL
|
||
check earlier.
|
||
|
||
PR c++/71406 - ICE with scope-ref'd template id exprs
|
||
PR c++/77508
|
||
* typeck.c (finish_class_member_access_expr): Break up SCOPE_REF
|
||
before breaking up TEMPLATE_ID_EXPR.
|
||
|
||
2017-01-20 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/78495 - wrong code inherited ctor and invisi-ref parm
|
||
* cp-gimplify.c (cp_generize_r): Don't skip thunks.
|
||
|
||
2017-01-20 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR c++/77829
|
||
PR c++/78656
|
||
* cp-tree.h (suggest_alternatives_for): Add bool param.
|
||
(suggest_alternative_in_explicit_scope): New decl.
|
||
* error.c (qualified_name_lookup_error): When SCOPE is a namespace
|
||
that isn't the global one, call new function
|
||
suggest_alternative_in_explicit_scope, only calling
|
||
suggest_alternatives_for if it fails, and disabling near match
|
||
searches fort that case. When SCOPE is the global namespace,
|
||
pass true for new param to suggest_alternatives_for to allow for
|
||
fuzzy name lookups.
|
||
* lex.c (unqualified_name_lookup_error): Pass true for new param
|
||
to suggest_alternatives_for.
|
||
* name-lookup.c (consider_binding_level): Add forward decl.
|
||
(suggest_alternatives_for): Add "suggest_misspellings" param,
|
||
using it to conditionalize the fuzzy name-lookup code.
|
||
(suggest_alternative_in_explicit_scope): New function.
|
||
* parser.c (cp_parser_primary_expression): When calling
|
||
finish_id_expression, pass location of id_expression rather
|
||
than that of id_expr_token.
|
||
(cp_parser_id_expression): Convert local "unqualified_id" from
|
||
tree to cp_expr to avoid implicitly dropping location information.
|
||
|
||
2017-01-20 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/64279
|
||
* call.c (build_conditional_expr_1): Warn about duplicated branches.
|
||
* semantics.c (finish_expr_stmt): Build statement using the proper
|
||
location.
|
||
|
||
2017-01-19 Jason Merrill <jason@redhat.com>
|
||
|
||
US 20 - forwarding references and class template argument deduction
|
||
* cp-tree.h (TEMPLATE_TYPE_PARM_FOR_CLASS): New.
|
||
* pt.c (push_template_decl_real): Set it.
|
||
(maybe_adjust_types_for_deduction): Check it.
|
||
(rewrite_template_parm): Copy it.
|
||
|
||
US 19 - deduction guides and constructors
|
||
* call.c (joust): Prefer deduction guides to constructors.
|
||
* pt.c (build_deduction_guide): Set DECL_ARTIFICIAL.
|
||
(deduction_guide_p): Check DECL_P.
|
||
|
||
* decl.c (check_initializer): Always use build_aggr_init for array
|
||
decomposition.
|
||
|
||
PR c++/79130 - decomposition and direct-initialization
|
||
* init.c (build_aggr_init): Communicate direct-initialization to
|
||
build_vec_init.
|
||
(build_vec_init): Check for array copy sooner.
|
||
* parser.c (cp_parser_decomposition_declaration): Remove call to
|
||
build_x_compound_expr_from_list.
|
||
|
||
2017-01-18 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/68666 - member variable template-id
|
||
* typeck.c (finish_class_member_access_expr): Handle variable
|
||
template-id.
|
||
* pt.c (lookup_and_finish_template_variable): No longer static.
|
||
* cp-tree.h: Declare it.
|
||
|
||
2017-01-18 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/78488
|
||
* call.c (build_over_call): When checking ellipsis conversions for
|
||
an inherited ctor, make sure there is at least one conversion.
|
||
|
||
2017-01-18 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/78894 - ICE with class deduction and default arg
|
||
* pt.c (build_deduction_guide): Set DECL_PRIMARY_TEMPLATE.
|
||
|
||
2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
|
||
|
||
PR c++/77489
|
||
* mangle.c (write_discriminator): Reorganize abi warning check.
|
||
|
||
2017-01-18 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* cp-tree.h: Clarify exception spec node comment.
|
||
* except.c (nothrow_spec_p): Simplify by checking node-equality.
|
||
|
||
PR c++/79091
|
||
* mangle.c (write_exception_spec): Check nothrow explicitly.
|
||
(write_encoding): Don't increment processing_template_decl around
|
||
encoding.
|
||
|
||
2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
|
||
|
||
PR c++/70182
|
||
* mangle.c (write_template_args): Add "on" for operator names.
|
||
|
||
2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
|
||
|
||
PR c++/77489
|
||
* mangle.c (write_discriminator): Handle discriminator >= 10.
|
||
|
||
2017-01-17 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/61636
|
||
* cp-tree.h (maybe_generic_this_capture): Declare.
|
||
* lambda.c (resolvable_dummy_lambda): New, broken out of ...
|
||
(maybe_resolve_dummy): ... here. Call it.
|
||
(maybe_generic_this_capture): New.
|
||
* parser.c (cp_parser_postfix_expression): Speculatively capture
|
||
this in generic lambda in unresolved member function call.
|
||
* pt.c (tsubst_copy_and_build): Force hard error from failed
|
||
member function lookup in generic lambda.
|
||
|
||
2017-01-17 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
PR c++/70565
|
||
* cp-array-notation.c (expand_array_notation_exprs): Handle
|
||
OMP_PARALLEL.
|
||
|
||
2017-01-11 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/78337 - ICE on invalid with generic lambda
|
||
* semantics.c (process_outer_var_ref): Check if containing_function
|
||
is null. Move inform call under complain test.
|
||
|
||
2017-01-11 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/77812
|
||
* name-lookup.c (set_namespace_binding_1): An overload of 1 decl
|
||
is a new overload.
|
||
|
||
2017-01-11 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* name-lookup.c (push_overloaded_decl_1): Refactor OVERLOAD creation.
|
||
|
||
2017-01-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/78341
|
||
* parser.c (cp_parser_std_attribute_spec): Remove over-eager
|
||
assertion. Formatting fix.
|
||
|
||
PR c++/72813
|
||
* decl2.c (c_parse_final_cleanups): Set flag_syntax_only to 1 after
|
||
writing PCH file.
|
||
|
||
2017-01-10 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR c++/77949
|
||
* parser.c (cp_parser_class_specifier_1): Only suggest inserting
|
||
a missing semicolon if we have a valid insertion location for
|
||
the fix-it hint.
|
||
|
||
2017-01-10 Jason Merrill <jason@redhat.com>
|
||
|
||
FI 20, decomposition declaration with parenthesized initializer.
|
||
* parser.c (cp_parser_decomposition_declaration): Use
|
||
cp_parser_initializer.
|
||
|
||
2017-01-09 Jason Merrill <jason@redhat.com>
|
||
|
||
Implement P0195R2, C++17 variadic using.
|
||
* parser.c (cp_parser_using_declaration): Handle ellipsis and comma.
|
||
* pt.c (tsubst_decl): Handle pack expansion in USING_DECL_SCOPE.
|
||
* error.c (dump_decl): Likewise.
|
||
|
||
2017-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR translation/79019
|
||
PR translation/79020
|
||
* semantics.c (finish_omp_clauses): Add missing whitespace to
|
||
translatable strings.
|
||
* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Fix comment typo.
|
||
|
||
2017-01-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/78948 - instantiation from discarded statement
|
||
* parser.h (struct cp_parser): Remove in_discarded_stmt field.
|
||
* cp-tree.h (in_discarded_stmt): Declare it.
|
||
(struct saved_scope): Add discarded_stmt bitfield.
|
||
(in_discarded_stmt): New macro.
|
||
* decl2.c (mark_used): Check it.
|
||
* parser.c (cp_parser_selection_statement): Adjust.
|
||
(cp_parser_jump_statement): Adjust.
|
||
|
||
2017-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/78931
|
||
* decl.c (cp_finish_decomp): Remove probe variable, if tt is
|
||
REFERENCE_REF_P, set tt to its operand.
|
||
|
||
PR c++/78890
|
||
* class.c (check_field_decls): Diagnose REFERENCE_TYPE fields in
|
||
unions even for C++11 and later.
|
||
|
||
2017-01-05 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/78765
|
||
* pt.c (convert_nontype_argument): Don't try and see if integral
|
||
or enum expressions are constants prematurely.
|
||
|
||
2017-01-04 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/64767
|
||
* typeck.c (cp_build_binary_op): Warn when a pointer is compared with
|
||
a zero character literal.
|
||
|
||
2017-01-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/78949
|
||
* typeck.c (cp_build_unary_op): Call mark_rvalue_use on arg if it has
|
||
vector type.
|
||
|
||
PR c++/78693
|
||
* parser.c (cp_parser_simple_declaration): Only complain about
|
||
inconsistent auto deduction if auto_result doesn't use auto.
|
||
|
||
* parser.c (cp_parser_simple_declaration): Diagnose function
|
||
declaration among more than one init-declarators with auto
|
||
specifier.
|
||
|
||
PR c++/71182
|
||
* parser.c (cp_lexer_previous_token): Use vec_safe_address in the
|
||
assertion, as lexer->buffer may be NULL.
|
||
|
||
2017-01-04 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/77545
|
||
PR c++/77284
|
||
* constexpr.c (potential_constant_expression_1): Handle CLEANUP_STMT.
|
||
|
||
2017-01-04 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/66735
|
||
* cp-tree.h (DECLTYPE_FOR_REF_CAPTURE): New.
|
||
(lambda_capture_field_type): Update prototype.
|
||
* lambda.c (lambda_capture_field_type): Add is_reference parm.
|
||
Add referenceness here.
|
||
(add_capture): Adjust lambda_capture_field_type call, refactor
|
||
error checking.
|
||
* pt.c (tsubst): Adjust lambda_capture_field_type call.
|
||
|
||
2017-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Update copyright years.
|
||
|
||
Copyright (C) 2017 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.
|