4248 lines
127 KiB
Plaintext
4248 lines
127 KiB
Plaintext
2023-05-29 Release Manager
|
||
|
||
* GCC 11.4.0 released.
|
||
|
||
2023-05-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-03-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/108998
|
||
* pt.c (el_data::skipped_trees): New data member.
|
||
(extract_locals_r): Push to skipped_trees any unevaluated
|
||
contexts that we skipped over.
|
||
(extract_local_specs): For the second walk, start from each
|
||
tree in skipped_trees.
|
||
|
||
2023-05-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-12-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100295
|
||
PR c++/107579
|
||
* pt.c (el_data::skip_unevaluated_operands): New data member.
|
||
(extract_locals_r): If skip_unevaluated_operands is true,
|
||
don't walk into unevaluated contexts.
|
||
(extract_local_specs): Walk the pattern twice, first with
|
||
skip_unevaluated_operands true followed by it set to false.
|
||
|
||
2023-05-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-11-29 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/107864
|
||
* decl.c (function_requirements_equivalent_p): Don't check
|
||
DECL_TEMPLATE_SPECIALIZATION.
|
||
* pt.c (determine_specialization): Propagate constraints when
|
||
specializing a function template too. Simplify by using
|
||
add_outermost_template_args.
|
||
|
||
2023-05-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-11-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/107179
|
||
* constraint.cc (tsubst_requires_expr): Make sure we're not
|
||
deferring access checks.
|
||
|
||
2023-05-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-30 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100474
|
||
* constraint.cc (diagnose_trait_expr): Handle all remaining
|
||
traits appropriately. Remove default case.
|
||
|
||
2023-05-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/104527
|
||
* constraint.cc (normalize_atom): Set
|
||
ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P appropriately.
|
||
(get_mapped_args): Make static, adjust parameters. Always
|
||
return a vector whose depth corresponds to the template depth of
|
||
the context of the atomic constraint expression. Micro-optimize
|
||
by passing false as exact to safe_grow_cleared and by collapsing
|
||
a multi-level depth-one argument vector.
|
||
(satisfy_atom): Adjust call to get_mapped_args and
|
||
diagnose_atomic_constraint.
|
||
(diagnose_atomic_constraint): Replace map parameter with an args
|
||
parameter.
|
||
* cp-tree.h (ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P): Define.
|
||
(get_mapped_args): Remove declaration.
|
||
|
||
2023-05-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-28 Patrick Palka <ppalka@redhat.com>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/92752
|
||
* typeck.c (build_ptrmemfunc): Cast a nullptr constant to the
|
||
unqualified pointer type not the qualified one.
|
||
|
||
2023-05-16 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2023-04-09 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (coro_rewrite_function_body): Ensure that added
|
||
bind expressions have scope blocks.
|
||
|
||
2023-05-16 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2023-04-01 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/101118
|
||
* coroutines.cc (flatten_await_stmt): Use the current count of
|
||
promoted temporaries to build a unique name for the frame entries.
|
||
|
||
2023-05-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/106740
|
||
PR c++/105852
|
||
* decl.c (duplicate_decls): Change non-templated friend
|
||
check to an assert.
|
||
* pt.c (tsubst_function_decl): Don't set DECL_TEMPLATE_INFO
|
||
on non-templated friends.
|
||
(tsubst_friend_function): Adjust.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-04-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* Make-lang.in (s-cp-module-version): New target.
|
||
(cp/module.o): Depend on it.
|
||
(MODULE_VERSION): Remove variable.
|
||
(CFLAGS-cp/module.o): For -DMODULE_VERSION= argument just
|
||
cat s-cp-module-version.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-03-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/109164
|
||
* cp-tree.h (var_needs_tls_wrapper): Declare.
|
||
* decl2.c (var_needs_tls_wrapper): No longer static.
|
||
* decl.c (cp_finish_decl): Clear TREE_READONLY on TLS variables
|
||
for which a TLS wrapper will be needed.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-03-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/109096
|
||
* tree.c (record_has_unique_obj_representations): Ignore unnamed
|
||
bitfields.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-03-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/107558
|
||
* decl.c (cp_finish_decl): Don't clear TREE_READONLY on
|
||
automatic non-aggregate variables just because of
|
||
-fmerge-all-constants.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-03-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/108716
|
||
* cp-gimplify.c (cp_genericize_r) <case USING_STMT>: Set
|
||
DECL_SOURCE_LOCATION on IMPORTED_DECL to expression location
|
||
of USING_STMT or input_location.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-01-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/108474
|
||
* cp-gimplify.c (cp_fold_r): Handle structured bindings
|
||
vars like anon union artificial vars.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-01-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/108365
|
||
* typeck.c (cp_build_binary_op): For integral division or modulo,
|
||
shorten if type0 is unsigned, or op0 is cast from narrower unsigned
|
||
integral type or stripped_op1 is INTEGER_CST other than -1.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-02-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/108607
|
||
* constexpr.c (cxx_eval_constant_expression): Handle OMP_*
|
||
and OACC_* constructs as non-constant.
|
||
(potential_constant_expression_1): Handle OMP_SCAN.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-01-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/53932
|
||
* cp-gimplify.c (cp_fold_r): During cp_fully_fold_init replace
|
||
DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding
|
||
DECL_VALUE_EXPR.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-12-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/108180
|
||
* pt.c (tsubst_expr): Don't call cp_finish_decl on
|
||
DECL_OMP_PRIVATIZED_MEMBER vars.
|
||
|
||
2023-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-12-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/107065
|
||
* typeck.c (cp_build_unary_op) <case TRUTH_NOT_EXPR>: If
|
||
invert_truthvalue_loc returns obvalue_p, wrap it into NON_LVALUE_EXPR.
|
||
* parser.c (cp_parser_binary_expression): Don't call
|
||
warn_logical_not_parentheses if current.lhs is a NON_LVALUE_EXPR
|
||
of a decl with boolean type.
|
||
|
||
2023-04-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105996
|
||
* typeck.c (build_ptrmemfunc): Drop 0-offset optimization
|
||
and location wrappers.
|
||
|
||
2023-04-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/108975
|
||
* lambda.c (prune_lambda_captures): Don't bother in a template.
|
||
|
||
2023-04-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/69410
|
||
* friend.c (do_friend): Handle namespace as scope argument.
|
||
* decl.c (grokdeclarator): Pass down in_namespace.
|
||
|
||
2023-04-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101869
|
||
* semantics.c (finish_qualified_id_expr): Don't try to build a
|
||
pointer-to-member if the scope is an enumeration.
|
||
|
||
2023-04-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105406
|
||
* coroutines.cc (build_co_await): Handle lvalue 'o'.
|
||
|
||
2023-04-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103871
|
||
PR c++/98056
|
||
* typeck.c (cp_build_modify_expr): Allow array initialization of
|
||
DECL_ARTIFICIAL variable.
|
||
|
||
2023-04-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/108468
|
||
* pt.c (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE
|
||
is non-null.
|
||
|
||
2023-03-13 Arsen Arsenović <arsen@aarsen.me>
|
||
|
||
PR c++/106188
|
||
PR c++/106713
|
||
* coroutines.cc (coro_rewrite_function_body): Ensure we have a
|
||
BIND_EXPR wrapping the function body.
|
||
|
||
2023-02-15 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2023-02-15 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/106675
|
||
* call.c (joust_maybe_elide_copy): Return false for ck_ambig.
|
||
|
||
2022-12-16 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/102780
|
||
PR c++/108138
|
||
* constexpr.c (potential_constant_expression_1) <case TRUTH_*_EXPR>:
|
||
When tf_error isn't set, preemptively check potentiality of the
|
||
second operand before performing trial evaluation of the first
|
||
operand.
|
||
(potential_constant_expression_1): When tf_error is set, first check
|
||
potentiality quietly and return true if successful, otherwise
|
||
proceed noisily to give errors.
|
||
|
||
2022-11-18 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-11-18 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/104066
|
||
* decl.c (grokdeclarator): Check funcdecl_p before complaining
|
||
about constinit.
|
||
|
||
2022-11-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-10-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/105774
|
||
* constexpr.c (cxx_eval_increment_expression): For signed types
|
||
that promote to int, evaluate PLUS_EXPR or MINUS_EXPR in int type.
|
||
|
||
2022-11-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-08-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* typeck.c (cp_build_modify_expr): Implement
|
||
P2327R1 - De-deprecating volatile compound operations. Don't warn
|
||
for |=, &= or ^= with volatile lhs.
|
||
* expr.c (mark_use) <case MODIFY_EXPR>: Adjust warning wording,
|
||
leave out simple.
|
||
|
||
2022-10-24 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-05-27 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/105725
|
||
* parser.c (class_decl_loc_t::add): Check CLASS_TYPE_P.
|
||
|
||
2022-07-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/106361
|
||
* decl.c (move_fn_p): Remove assert.
|
||
|
||
2022-07-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/106024
|
||
* parser.c (cp_parser_lookup_name): Don't look in dependent lambda.
|
||
|
||
2022-06-24 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105925
|
||
* decl.c (reshape_init_array_1): Set
|
||
CONSTRUCTOR_IS_DESIGNATED_INIT here.
|
||
(reshape_init_class): And here.
|
||
|
||
2022-06-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105852
|
||
PR c++/105761
|
||
* decl.c (duplicate_decls): Avoid copying template info
|
||
from non-templated friend even if newdecl isn't a definition.
|
||
Correct handling of DECL_UNIQUE_FRIEND_P on templates.
|
||
* pt.c (non_templated_friend_p): New.
|
||
* cp-tree.h (non_templated_friend_p): Declare it.
|
||
|
||
2022-06-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105761
|
||
* decl.c (duplicate_decls): Don't copy DECL_TEMPLATE_INFO
|
||
from a hidden friend.
|
||
|
||
2022-06-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105795
|
||
* constexpr.c (cxx_eval_bare_aggregate): Always call
|
||
init_subob_ctx.
|
||
|
||
2022-05-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/102307
|
||
* decl.c (check_initializer): Use build_cplus_new in case of
|
||
constexpr failure.
|
||
|
||
2022-05-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101442
|
||
* decl.c (cp_finish_decl): Don't pass decl to push_cleanup.
|
||
* init.c (perform_member_init): Likewise.
|
||
* semantics.c (push_cleanup): Adjust comment.
|
||
|
||
2022-05-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101698
|
||
* pt.c (tsubst_baselink): Also check dependent optype.
|
||
|
||
2022-05-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/65211
|
||
* pt.c (tsubst_decl) [TYPE_DECL]: Copy TYPE_ALIGN.
|
||
|
||
2022-05-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-27 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/102479
|
||
* pt.c (rewrite_template_parm): Handle single-level tsubst_args.
|
||
Avoid a tree cycle when assigning the DECL_TEMPLATE_PARMS for a
|
||
rewritten ttp.
|
||
(alias_ctad_tweaks): Set current_template_parms accordingly.
|
||
|
||
2022-05-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/102300
|
||
* parser.c (cp_parser_template_name): Use dependent_scope_p.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/102629
|
||
* pt.c (gen_elem_of_pack_expansion_instantiation): Clear
|
||
TEMPLATE_TYPE_PARAMETER_PACK on auto.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/104646
|
||
* constexpr.c (maybe_save_constexpr_fundef): Don't do extra
|
||
checks for defaulted ctors.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/82980
|
||
* lambda.c (type_deducible_expression_p): New.
|
||
(lambda_capture_field_type): Check it.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105265
|
||
PR c++/100838
|
||
* call.c (build_user_type_conversion_1): Drop
|
||
flag_elide_constructors check.
|
||
(convert_like_internal): Likewise.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105245
|
||
PR c++/100111
|
||
* constexpr.c (cxx_eval_store_expression): Build a CONSTRUCTOR
|
||
as needed in empty base handling.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/104669
|
||
* decl.c (decls_match): Compare versions even if not recording.
|
||
(duplicate_decls): Propagate attributes to alias.
|
||
* decl2.c (find_last_decl): Give up if versioned.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/102071
|
||
* init.c (build_new_1): Include cookie in alignment. Omit
|
||
constexpr wrapper from alloc_call.
|
||
|
||
2022-05-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/104142
|
||
* decl.c (check_initializer): Check TREE_SIDE_EFFECTS.
|
||
|
||
2022-05-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-05-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* lambda.c: Include decl.h.
|
||
(maybe_add_lambda_conv_op): Temporarily override deprecated_state to
|
||
DEPRECATED_SUPPRESS.
|
||
|
||
2022-04-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-26 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/105386
|
||
* semantics.c (finish_decltype_type): Pass tf_decltype to
|
||
instantiate_non_dependent_expr_sfinae.
|
||
|
||
2022-04-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-26 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/105289
|
||
PR c++/86193
|
||
* pt.c (process_partial_specialization): Downgrade "partial
|
||
specialization isn't more specialized" diagnostic from permerror
|
||
to an on-by-default pedwarn.
|
||
(unify) <case TEMPLATE_PARM_INDEX>: When substituting into the
|
||
NTTP type a second time, use the original type not the
|
||
substituted type.
|
||
|
||
2022-04-28 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-28 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/90107
|
||
* parser.c (cp_parser_class_specifier_1): Accept :: after a class
|
||
definition.
|
||
|
||
2022-04-27 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-27 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/105398
|
||
* pt.c (uses_template_parms): Return false for any NAMESPACE_DECL.
|
||
|
||
2022-04-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-21 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/105321
|
||
* constexpr.c (cxx_eval_logical_expression): Always pass false for lval
|
||
to cxx_eval_constant_expression.
|
||
|
||
2022-04-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-13 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/97296
|
||
* call.c (direct_reference_binding): strip_top_quals when creating
|
||
a ck_qual.
|
||
|
||
2022-04-21 Matthias Kretz <m.kretz@gsi.de>
|
||
|
||
Backported from master:
|
||
2021-12-19 Matthias Kretz <m.kretz@gsi.de>
|
||
|
||
* module.cc (trees_out::get_merge_kind): NAMESPACE_DECLs also
|
||
cannot have a DECL_TEMPLATE_INFO.
|
||
|
||
2022-04-21 Release Manager
|
||
|
||
* GCC 11.3.0 released.
|
||
|
||
2022-04-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/105256
|
||
* typeck2.c (process_init_constructor_array,
|
||
process_init_constructor_record, process_init_constructor_union): Move
|
||
CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag from CONSTRUCTOR elements to the
|
||
containing CONSTRUCTOR.
|
||
|
||
2022-04-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-16 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/104507
|
||
* constexpr.c (potential_constant_expression_1)
|
||
<case NON_DEPENDENT_EXPR>: Return false instead of recursing.
|
||
Assert tf_error isn't set.
|
||
|
||
2022-04-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103706
|
||
* constraint.cc (satisfy_declaration_constraints): Use
|
||
lambda_regenerating_args instead.
|
||
* cp-tree.h (lambda_regenerating_args): Declare.
|
||
* pt.c (lambda_regenerating_args): Define, split out from
|
||
satisfy_declaration_constraints.
|
||
(do_auto_deduction): Use lambda_regenerating_args to obtain the
|
||
full set of outer template arguments for satisfaction when
|
||
inside a lambda.
|
||
|
||
2022-04-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103341
|
||
* decl.c (cp_finish_decl): Pass the template arguments of a
|
||
variable template specialization or a templated static data
|
||
member to do_auto_deduction when the auto is constrained.
|
||
|
||
2022-04-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-25 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101532
|
||
PR c++/104225
|
||
* decl2.c (mark_used): Don't consider maybe_instantiate_noexcept
|
||
on a deleted function.
|
||
|
||
2022-04-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103105
|
||
* pt.c (build_extra_args): Call preserve_args.
|
||
|
||
2022-04-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103706
|
||
* pt.c (preserve_args): New function.
|
||
(tsubst_lambda_expr): Use it when setting LAMBDA_EXPR_REGEN_INFO.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98249
|
||
* call.c (build_operator_new_call): Just look in ::.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100608
|
||
* name-lookup.c (check_local_shadow): Use -Wshadow=local
|
||
if exactly one of 'old' and 'decl' is a type.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101677
|
||
* name-lookup.h (struct cp_binding_level): Add requires_expression
|
||
bit-field.
|
||
* parser.c (cp_parser_requires_expression): Set it.
|
||
(synthesize_implicit_template_parm): Check it.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/105003
|
||
PR c++/104008
|
||
PR c++/102869
|
||
* pt.c (complex_alias_template_r): walk_tree callback, replacing
|
||
uses_all_template_parms_r, complex_pack_expansion_r.
|
||
(complex_alias_template_p): Adjust.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101894
|
||
* decl.c (duplicate_decls): Copy DECL_FRIEND_CONTEXT.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103943
|
||
* pt.c (tsubst_qualified_id): Handle getting SCOPE_REF from
|
||
tsubst_baselink.
|
||
(instantiation_dependent_scope_ref_p): Check dependent_scope_p.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101717
|
||
* lambda.c (lambda_expr_this_capture): Check all enclosing
|
||
lambdas for completeness.
|
||
|
||
2022-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101051
|
||
* decl.c (grokdeclarator): Reject conversion with trailing return
|
||
sooner.
|
||
|
||
2022-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-05-27 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99893
|
||
PR c++/103885
|
||
* tree.c (cp_walk_subtrees) <case STATIC_ASSERT>: New case.
|
||
|
||
2022-04-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-04-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/105143
|
||
* pt.c (do_class_deduction): Check complain before attempting
|
||
to issue a -Wctad-maybe-unsupported warning.
|
||
|
||
2022-04-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/105064
|
||
* constraint.cc (maybe_substitute_reqs_for): Don't assume
|
||
DECL_TEMPLATE_INFO is available.
|
||
|
||
2022-04-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-17 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/104565
|
||
* semantics.c (finish_compound_literal): Don't perform
|
||
non-dependent expr folding before calling check_narrowing.
|
||
|
||
2022-04-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/104079
|
||
* pt.c (value_dependent_noexcept_spec_p): New predicate split
|
||
out from ...
|
||
(dependent_type_p_r): ... here.
|
||
(instantiation_dependent_r): Use value_dependent_noexcept_spec_p
|
||
to consider dependence of a noexcept-spec before C++17.
|
||
* tree.c (fixup_deferred_exception_variants): Clear
|
||
TYPE_DEPENDENT_P_VALID.
|
||
|
||
2022-04-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-26 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103455
|
||
* call.c (add_builtin_candidate) <case MEMBER_REF>: Test
|
||
CLASS_TYPE_P instead of MAYBE_CLASS_TYPE_P.
|
||
|
||
2022-04-07 Benno Evers <benno.evers@tenzir.com>
|
||
|
||
Backported from master:
|
||
2022-04-03 Benno Evers <benno.evers@tenzir.com>
|
||
Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/103328
|
||
* coroutines.cc (morph_fn_to_coro): Reset
|
||
current_binding_level->blocks.
|
||
|
||
2022-03-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/105061
|
||
* parser.c (cp_parser_template_introduction): If member_p, temporarily
|
||
clear parser->colon_corrects_to_scope_p around tentative parsing of
|
||
nested name specifier.
|
||
|
||
2022-03-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* parser.c (cp_parser_postfix_expression)
|
||
<case RID_BILTIN_CONVERTVECTOR, case RID_BUILTIN_BIT_CAST>: Don't
|
||
return cp_build_{vec,convert,bit_cast} result right away, instead
|
||
set postfix_expression to it and break.
|
||
|
||
2022-03-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/104994
|
||
* constexpr.c (potential_constant_expression_1): Don't diagnose extern
|
||
thread_local declarations.
|
||
* decl.c (start_decl): Likewise.
|
||
|
||
2022-03-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/104568
|
||
* init.c (build_new_constexpr_heap_type): Remove FULL_SIZE
|
||
argument and its handling, instead add ITYPE2 argument. Only
|
||
support COOKIE_SIZE != NULL.
|
||
(build_new_1): If size is 0, change it to 0 * outer_nelts if
|
||
outer_nelts is non-NULL. Pass type rather than elt_type to
|
||
maybe_wrap_new_for_constexpr.
|
||
* constexpr.c (build_new_constexpr_heap_type): New function.
|
||
(cxx_eval_constant_expression) <case CONVERT_EXPR>:
|
||
If elt_size is zero sized type, try to recover outer_nelts from
|
||
the size argument to operator new/new[] and pass that as
|
||
arg_size to build_new_constexpr_heap_type. Pass ctx,
|
||
non_constant_p and overflow_p to that call too.
|
||
|
||
2022-03-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/104711
|
||
* constexpr.c (cxx_eval_check_shift_p): Use TYPE_OVERFLOW_WRAPS
|
||
instead of TYPE_UNSIGNED.
|
||
* typeck.c (cp_build_binary_op): Don't emit
|
||
-Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS.
|
||
|
||
2022-03-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/104806
|
||
* search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Ignore
|
||
identifiers with space at the end.
|
||
|
||
2022-03-29 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-25 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/104944
|
||
* typeck.c (cxx_sizeof_or_alignof_type): Diagnose alignof(void).
|
||
(cxx_alignas_expr): Call cxx_sizeof_or_alignof_type with
|
||
complain == true.
|
||
|
||
2022-03-29 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-24 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/104284
|
||
* decl.c (check_initializer): Don't call build_aggr_init in
|
||
a template.
|
||
|
||
2022-03-29 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/104108
|
||
* pt.c (convert_nontype_argument): Recompute
|
||
value_dependent_expression_p after build_converted_constant_expr.
|
||
|
||
2022-03-29 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-03-24 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/102990
|
||
* typeck2.c (massage_init_elt): Avoid folding CONSTRUCTORs.
|
||
|
||
2022-03-29 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-14 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/101371
|
||
* constexpr.c (cxx_eval_array_reference): Create a new .object
|
||
and .ctor for the non-aggregate non-scalar case too when
|
||
value-initializing.
|
||
|
||
2022-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/104107
|
||
PR c++/95036
|
||
* pt.c (coerce_template_template_parms): Take full parms.
|
||
Avoid adding too much of outer_args.
|
||
(coerce_template_template_parm): Adjust.
|
||
(template_template_parm_bindings_ok_p): Adjust.
|
||
(convert_template_argument): Adjust.
|
||
|
||
2022-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99445
|
||
PR c++/103769
|
||
* tree.c (strip_typedefs): Use build_distinct_type_copy.
|
||
|
||
2022-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/104847
|
||
* mangle.c (write_expression): Don't write a union designator when
|
||
undigested.
|
||
|
||
2022-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/102045
|
||
* call.c (make_base_init_ok): Call make_used.
|
||
|
||
2022-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103968
|
||
* pt.c (value_dependent_expression_p): Check
|
||
has_value_dependent_address for conversion to reference.
|
||
|
||
2022-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/102123
|
||
* pt.c (tsubst_copy): Use make_unbound_class_template for rewriting
|
||
a type template reference.
|
||
|
||
2022-03-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103291
|
||
* name-lookup.c (push_local_extern_decl_alias): Call
|
||
determine_visibility.
|
||
|
||
2022-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103186
|
||
* pt.c (defarg_inst): Use tree_vec_map_cache_hasher.
|
||
(defarg_insts_for): New.
|
||
(tsubst_default_argument): Adjust.
|
||
|
||
2022-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103057
|
||
* pt.c (tsubst_aggr_type): Call tsubst for alias template
|
||
specialization.
|
||
|
||
2022-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59950
|
||
* call.c (build_over_call): Use cp_build_indirect_ref.
|
||
|
||
2022-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101095
|
||
* cp-objcp-common.c (cp_common_init_ts): Mark types as types.
|
||
(cp_tree_size): Remove redundant entries.
|
||
|
||
2022-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58646
|
||
* init.c (build_vec_init): Check for vla element type.
|
||
|
||
2022-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103337
|
||
PR c++/102740
|
||
PR c++/103299
|
||
PR c++/102538
|
||
* decl.c (reshape_init_class): Avoid looking for designator
|
||
after we found it.
|
||
(reshape_init_r): Keep looking for designator.
|
||
|
||
2022-03-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101767
|
||
* decl.c (reshape_init_class): Back out of anon struct
|
||
if a designator doesn't match.
|
||
|
||
2022-02-28 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-28 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/104667
|
||
* decl2.c (is_late_template_attribute): Cope with a decl without
|
||
a type.
|
||
|
||
2022-02-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/104513
|
||
* constexpr.c (potential_constant_expression_1) <case GOTO_EXPR>:
|
||
Don't punt if returns (target).
|
||
|
||
2022-02-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/104472
|
||
* constexpr.c (cxx_eval_internal_function) <case IFN_VEC_CONVERT>:
|
||
Only return fold_const_call result if it is non-NULL. Otherwise
|
||
fall through into the default: case to return t, set *non_constant_p
|
||
and emit diagnostics if needed.
|
||
|
||
2022-02-18 Richard Biener <rguenther@suse.de>
|
||
|
||
Backported from master:
|
||
2021-05-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/100464
|
||
PR c++/100468
|
||
* call.c (set_up_extended_ref_temp): Mark the temporary
|
||
addressable if the TARGET_EXPR was.
|
||
|
||
2022-02-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-02-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/104410
|
||
* constraint.cc (satisfaction_value): Relax assert to accept
|
||
cv-qualified bool.
|
||
|
||
2022-01-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/61611
|
||
* except.c (in_nested_catch): New.
|
||
(expand_end_catch_block): Check it.
|
||
|
||
2022-01-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103711
|
||
* init.c (perform_target_ctor): Select destructor by in_chrg.
|
||
|
||
2022-01-24 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-21 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/101715
|
||
* tree.c (fixup_deferred_exception_variants): Remove duplicate
|
||
variants after parsing the exception specifications.
|
||
|
||
2022-01-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/104055
|
||
* constexpr.c (cxx_eval_outermost_constant_expr): If t is a
|
||
TARGET_EXPR with TARGET_EXPR_CLEANUP, use get_target_expr rather
|
||
than get_target_expr_sfinae with tf_no_cleanup, and don't set
|
||
TREE_CONSTANT.
|
||
|
||
2022-01-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-12 Jakub Jelinek <jakub@redhat.com>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/103480
|
||
* tree.c (move): If expr is xvalue_p, just return expr without
|
||
build_static_cast.
|
||
|
||
2022-01-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/103912
|
||
* semantics.c (expand_or_defer_fn): For immediate functions, set
|
||
node->body_removed to true and clear analyzed, definition and
|
||
force_output.
|
||
* decl2.c (c_parse_final_cleanups): Ignore immediate functions for
|
||
expand_or_defer_fn.
|
||
|
||
2022-01-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/103758
|
||
* parser.c (cp_parser_decl_specifier_seq): Replace %<decl-specifier%>
|
||
with %qD.
|
||
|
||
2022-01-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
Revert:
|
||
2022-01-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/103758
|
||
* parser.c (cp_parser_decl_specifier_seq): Replace %<decl-specifier%>
|
||
with %qD.
|
||
|
||
2022-01-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/103758
|
||
* parser.c (cp_parser_decl_specifier_seq): Replace %<decl-specifier%>
|
||
with %qD.
|
||
|
||
2022-01-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103831
|
||
* call.c (build_new_method_call): Consider dependent bases only
|
||
if 'this' is available.
|
||
|
||
2022-01-10 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2022-01-10 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103783
|
||
* call.c (cand_parms_match): Skip over 'this' when given one
|
||
static and one non-static member function.
|
||
|
||
2022-01-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-12-15 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/102229
|
||
* decl.c (check_decltype_auto): New.
|
||
(grokdeclarator): Call it.
|
||
* pt.c (do_auto_deduction): Don't check decltype(auto) here.
|
||
|
||
2021-12-19 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-12-19 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103714
|
||
* constraint.cc (satisfy_declaration_constraints): Do
|
||
push_to_top_level and pop_from_top_level around the call to
|
||
satisfy_normalized_constraints.
|
||
|
||
2021-12-16 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c++/103703
|
||
* parser.c (class_decl_loc_t::diag_mismatched_tags): Check for class
|
||
type before assuming a type is one.
|
||
|
||
2021-12-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-11-29 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100493
|
||
* parser.c (cp_parser_lambda_introducer): In C++17, don't
|
||
diagnose a redundant 'this' capture alongside a by-copy
|
||
capture default unless -pedantic. Move the diagnostic into
|
||
-Wc++20-extensions and adjust wording accordingly.
|
||
|
||
2021-12-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-11-19 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/103198
|
||
* pt.c (any_template_parm_r): Walk the TREE_TYPE of a dummy
|
||
object.
|
||
|
||
2021-12-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-11-18 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99911
|
||
* pt.c (tsubst_copy_and_build) <case CALL_EXPR>: Don't diagnose
|
||
name lookup failure if the arguments to an unresolved template
|
||
name are still dependent.
|
||
|
||
2021-12-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-11-09 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98394
|
||
PR c++/85846
|
||
* parser.c (cp_parser_placeholder_type_specifier): Declare
|
||
static. Don't override tentative to false when tmpl is a
|
||
concept-id with empty argument list. Don't emit a "does not
|
||
constrain a type" error when tentative.
|
||
|
||
2021-12-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/102933
|
||
* parser.c (cp_parser_simple_type_specifier): Adjust diagnostic
|
||
for using auto in parameter declaration.
|
||
* pt.c (extract_autos_r): Ignore CTAD placeholders.
|
||
(extract_autos): Use range-based for.
|
||
(do_auto_deduction): Use extract_autos only for the concepts TS
|
||
and not also for standard concepts.
|
||
(type_uses_auto): Likewise with for_each_template_parm.
|
||
(check_auto_in_tmpl_args): Just return false outside of the
|
||
concepts TS. Simplify.
|
||
|
||
2021-12-07 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-12-07 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/95009
|
||
* typeck.c (is_bitfield_expr_with_lowered_type) <case MODIFY_EXPR>:
|
||
Handle UNARY_PLUS_EXPR, NEGATE_EXPR, NON_LVALUE_EXPR, BIT_NOT_EXPR,
|
||
P*CREMENT_EXPR too.
|
||
|
||
2021-12-02 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-12-02 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/94490
|
||
* pt.c (expand_integer_pack): Call
|
||
instantiate_non_dependent_expr_sfinae.
|
||
|
||
2021-12-01 Jason Merrill <jason@redhat.com>
|
||
|
||
* semantics.c (is_this_parameter): Check DECL_HAS_VALUE_EXPR_P
|
||
instead of is_capture_proxy.
|
||
|
||
2021-11-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-11-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/70796
|
||
* cp-gimplify.c (cp_gimplify_arg): New function.
|
||
(cp_gimplify_expr): Use cp_gimplify_arg instead of gimplify_arg,
|
||
pass true as last argument to it if there are any following
|
||
arguments in strong evaluation order with side-effects.
|
||
|
||
2021-11-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/102786
|
||
* constexpr.c (cxx_eval_constant_expression): Don't reject
|
||
INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE.
|
||
|
||
2021-10-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/102642
|
||
* name-lookup.c (push_local_extern_decl_alias): Don't call
|
||
set_decl_tls_model on error_mark_node.
|
||
* decl.c (make_rtl_for_nonlocal_decl): Don't call
|
||
set_user_assembler_name on error_mark_node.
|
||
* parser.c (cp_parser_oacc_declare): Ignore DECL_LOCAL_DECL_ALIAS
|
||
if it is error_mark_node.
|
||
(cp_parser_omp_declare_target): Likewise.
|
||
|
||
2021-10-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/102640
|
||
* parser.c (handle_omp_declare_target_clause): New function.
|
||
(cp_parser_omp_declare_target): Use it.
|
||
|
||
2021-10-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99904
|
||
* pt.c (is_compatible_template_arg): Set processing_template_decl
|
||
around tsubst_constraint_info.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-05 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/102547
|
||
* constexpr.c (potential_constant_expression_1): Handle
|
||
NONTYPE_ARGUMENT_PACK.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-30 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/102535
|
||
* method.c (is_xible_helper): Don't exit early for multi-arg
|
||
ctors in C++20.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-30 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/95567
|
||
* method.c (build_comparison_op): Skip DECL_VIRTUAL_P fields.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-22 Patrick Palka <ppalka@redhat.com>
|
||
|
||
DR 2446
|
||
PR c++/102412
|
||
* constexpr.c (cxx_eval_constant_expression)
|
||
<case TEMPLATE_ID_EXPR>: Check value_dependent_expression_p
|
||
instead of processing_template_decl.
|
||
* pt.c (value_dependent_expression_p) <case TEMPLATE_ID_EXPR>:
|
||
Return true only if any_dependent_template_arguments_p.
|
||
(instantiation_dependent_r) <case CALL_EXPR>: Remove this case.
|
||
<case TEMPLATE_ID_EXPR>: Likewise.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-16 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98486
|
||
* constraint.cc (get_normalized_constraints_from_decl): Always
|
||
look up constraints using the most general template.
|
||
* decl.c (grokdeclarator): Set constraints on a static data
|
||
member template.
|
||
* pt.c (determine_specialization): Check constraints on a
|
||
variable template.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-14 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/102163
|
||
* constexpr.c (cxx_eval_call_expression): After evaluating a
|
||
subobject constructor call for an empty union member, produce a
|
||
side effect that makes sure the member gets activated.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-08-18 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101344
|
||
PR c++/101803
|
||
* cp-tree.h (CONSTRUCTOR_BRACES_ELIDED_P): Define.
|
||
* decl.c (reshape_init_r): Set it.
|
||
* pt.c (collect_ctor_idx_types): Recurse into a sub-CONSTRUCTOR
|
||
iff CONSTRUCTOR_BRACES_ELIDED_P.
|
||
|
||
2021-10-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-08-18 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101883
|
||
* pt.c (convert_template_argument): Pass LOOKUP_IMPLICIT to
|
||
do_auto_deduction.
|
||
|
||
2021-10-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/102548
|
||
* tree.c (apply_identity_attributes): Fix handling of the
|
||
case where an attribute in the list doesn't affect type
|
||
identity but some attribute before it does.
|
||
|
||
2021-10-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-10-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/102496
|
||
* name-lookup.c (push_local_extern_decl_alias): Return early even for
|
||
tls vars with non-dependent type when processing_template_decl. For
|
||
CP_DECL_THREAD_LOCAL_P vars call set_decl_tls_model on alias.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-28 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/102454
|
||
* coroutines.cc (analyze_fn_parms): Clean up synthetic names for
|
||
unnamed function params.
|
||
(morph_fn_to_coro): Do not try to set a guard variable for param
|
||
DTORs in the ramp, unless we have exceptions active.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-14 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (struct param_info): Add copy_var.
|
||
(build_actor_fn): Use simplified param references.
|
||
(register_param_uses): Likewise.
|
||
(rewrite_param_uses): Likewise.
|
||
(analyze_fn_parms): New function.
|
||
(coro_rewrite_function_body): Add proxies for the fn
|
||
parameters to the outer bind scope of the rewritten code.
|
||
(morph_fn_to_coro): Use simplified version of param ref.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-14 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (coro_resume_fn_id, coro_destroy_fn_id,
|
||
coro_promise_id, coro_frame_needs_free_id, coro_resume_index_id,
|
||
coro_self_handle_id, coro_actor_continue_id,
|
||
coro_frame_i_a_r_c_id): New.
|
||
(coro_init_identifiers): Initialize new name identifiers.
|
||
(coro_promise_type_found_p): Use pre-built identifiers.
|
||
(struct await_xform_data): Remove unused fields.
|
||
(transform_await_expr): Delete code that is now unused.
|
||
(build_actor_fn): Simplify interface, use pre-built identifiers and
|
||
remove transforms that are no longer needed.
|
||
(build_destroy_fn): Use revised field names.
|
||
(register_local_var_uses): Use pre-built identifiers.
|
||
(coro_rewrite_function_body): Simplify interface, use pre-built
|
||
identifiers. Generate proxy vars in the outer bind expr scope for the
|
||
implementation state that we wish to expose.
|
||
(morph_fn_to_coro): Adjust comments for new variable names, use pre-
|
||
built identifiers. Remove unused code to generate frame entries for
|
||
the implementation state. Adjust call for build_actor_fn.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (register_local_var_uses): Do not mangle
|
||
frame entries for the outermost scope. Record the outer
|
||
scope as nesting depth 0.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (coro_build_artificial_var): New.
|
||
(build_actor_fn): Use var builder, rename vars to use
|
||
implementation namespace.
|
||
(coro_rewrite_function_body): Likewise.
|
||
(morph_fn_to_coro): Likewise.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (transform_local_var_uses): Record
|
||
frame offset expressions as DECL_VALUE_EXPRs instead of
|
||
rewriting them.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-01 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (build_actor_fn): Add begin/finish clauses
|
||
to the initial test in the actor function.
|
||
|
||
2021-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-09-01 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (await_statement_walker): Use build_stmt and
|
||
add_stmt instead of build1 and finish_expr_stmt.
|
||
|
||
2021-10-03 Jason Merrill <jason@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-05-07 Jason Merrill <jason@redhat.com>
|
||
|
||
* coroutines.cc (build_co_await): Don't call 'rvalue'.
|
||
(flatten_await_stmt): Simplify initialization.
|
||
(morph_fn_to_coro): Change 'rvalue' to 'move'. Simplify.
|
||
|
||
2021-09-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/88578
|
||
PR c++/102295
|
||
* typeck2.c (split_nonconstant_init_1): Don't throw away empty
|
||
initializers of flexible array members if they have non-zero type
|
||
size.
|
||
|
||
2021-09-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/102295
|
||
* decl.c (layout_var_decl): For aggregates ending with a flexible
|
||
array member, add the size of the initializer for that member to
|
||
DECL_SIZE and DECL_SIZE_UNIT.
|
||
|
||
2021-09-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/102305
|
||
* method.c (is_xible_helper): Call complete_type on to.
|
||
|
||
2021-09-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-09-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/100495
|
||
* constexpr.c (maybe_save_constexpr_fundef): Save body even for
|
||
constexpr deleting dtors.
|
||
(cxx_eval_call_expression): Don't use DECL_CLONED_FUNCTION for
|
||
deleting dtors.
|
||
|
||
2021-08-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-08-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/101759
|
||
* parser.c (cp_parser_default_argument): Temporarily override
|
||
parser->omp_declare_simd and parser->oacc_routine to NULL.
|
||
|
||
2021-08-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-08-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101663
|
||
* constexpr.c (cxx_eval_store_expression): Handle the lval=true
|
||
case in the early exit code path for empty stores with mismatched
|
||
types.
|
||
|
||
2021-08-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-08-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101725
|
||
DR 2082
|
||
* cp-tree.h (unevaluated_p): Return true for REQUIRES_EXPR.
|
||
* decl.c (local_variable_p_walkfn): Don't walk into unevaluated
|
||
operands.
|
||
* parser.c (cp_parser_primary_expression) <case CPP_NAME>: Never
|
||
reject uses of local variables in unevaluated contexts.
|
||
* tree.c (cp_walk_subtrees) <case REQUIRES_EXPR>: Increment
|
||
cp_unevaluated_operand. Use cp_walk_tree directly instead of
|
||
WALK_SUBTREE to avoid the goto. Use REQUIRES_EXPR_REQS instead
|
||
of TREE_OPERAND directly.
|
||
|
||
2021-08-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-08-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100828
|
||
* logic.cc (formula::formula): Use emplace_back instead of
|
||
push_back.
|
||
(formula::branch): Insert a copy of m_current directly after
|
||
m_current instead of at the end of the list.
|
||
(formula::erase): Define.
|
||
(decompose_formula): Remove.
|
||
(decompose_antecedents): Remove.
|
||
(decompose_consequents): Remove.
|
||
(derive_proofs): Remove.
|
||
(max_problem_size): Remove.
|
||
(diagnose_constraint_size): Remove.
|
||
(subsumes_constraints_nonnull): Rewrite directly in terms of
|
||
decompose_clause and derive_proof, interleaving decomposition
|
||
with implication checking. Remove limit on constraint complexity.
|
||
Use formula::erase to free the current clause before moving on to
|
||
the next one.
|
||
|
||
2021-07-28 Release Manager
|
||
|
||
* GCC 11.2.0 released.
|
||
|
||
2021-07-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/101516
|
||
* semantics.c (finish_omp_reduction_clause): Also call
|
||
complete_type_or_else and return true if it fails.
|
||
|
||
2021-07-20 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-07-19 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/95520
|
||
* coroutines.cc (struct coroutine_info): Add fields for
|
||
actor and destroy function decls.
|
||
(to_ramp): New.
|
||
(coro_get_ramp_function): New.
|
||
(coro_get_actor_function): New.
|
||
(coro_get_destroy_function): New.
|
||
(act_des_fn): Set up mapping between ramp, actor and
|
||
destroy functions.
|
||
(morph_fn_to_coro): Adjust interface to the builder for
|
||
helper function decls.
|
||
* cp-tree.h (DECL_ACTOR_FN, DECL_DESTROY_FN, DECL_RAMP_FN,
|
||
JOIN_STR): New.
|
||
* mangle.c (write_encoding): Handle coroutine helpers.
|
||
(write_unqualified_name): Handle lambda coroutine helpers.
|
||
|
||
2021-07-20 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-07-09 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc (build_actor_fn): Move common code to
|
||
act_des_fn.
|
||
(build_destroy_fn): Likewise.
|
||
(act_des_fn): Build the void return here. Ensure that the
|
||
source location matches the original function.
|
||
|
||
2021-07-20 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
Backported from master:
|
||
2021-07-09 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* coroutines.cc
|
||
(coro_rewrite_function_body): Connect the replacement
|
||
function block to the block nest correctly.
|
||
|
||
2021-07-18 Tobias Burnus <tobias@codesourcery.com>
|
||
|
||
Backported from master:
|
||
2021-05-04 Tobias Burnus <tobias@codesourcery.com>
|
||
|
||
* semantics.c (finish_omp_reduction_clause): Accept float + complex
|
||
for || and && reductions.
|
||
|
||
2021-07-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/101443
|
||
* cp-gimplify.c (cp_fold): For comparisons with NULLPTR_TYPE
|
||
operands, fold them right away to true or false.
|
||
|
||
2021-07-16 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-16 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101233
|
||
* pt.c (alias_ctad_tweaks): Clear cp_unevaluated_operand for
|
||
substituting DECL_ARGUMENTS.
|
||
|
||
2021-07-16 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-05-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100138
|
||
* constraint.cc (tsubst_constraint): Set up cp_unevaluated.
|
||
(satisfy_atom): Set up iloc_sentinel before calling
|
||
cxx_constant_value.
|
||
* pt.c (tsubst_pack_expansion): When returning a rebuilt pack
|
||
expansion, carry over PACK_EXPANSION_LOCAL_P and
|
||
PACK_EXPANSION_SIZEOF_P from the original pack expansion.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-09 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101181
|
||
* constraint.cc (tsubst_requires_expr): Pass complain/in_decl to
|
||
add_extra_args.
|
||
* cp-tree.h (add_extra_args): Add complain/in_decl parameters.
|
||
* pt.c (build_extra_args): Make a copy of args.
|
||
(add_extra_args): Add complain/in_decl parameters. Enable the
|
||
code for handling the case where the extra arguments are
|
||
dependent.
|
||
(tsubst_pack_expansion): Pass complain/in_decl to
|
||
add_extra_args.
|
||
(tsubst_template_args): Handle missing template arguments.
|
||
(tsubst_expr) <case IF_STMT>: Pass complain/in_decl to
|
||
add_extra_args.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-09 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101247
|
||
* pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Just walk the
|
||
DECL_CONTEXT.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101247
|
||
* pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Rewrite to
|
||
use common_enclosing_class and to not depend on the TREE_TYPE
|
||
of outer levels pointing to the corresponding primary template.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-01 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101194
|
||
* constexpr.c (cxx_eval_array_reference): When the element type
|
||
is an empty type and the corresponding element is omitted, just
|
||
return an empty CONSTRUCTOR instead of attempting value
|
||
initialization.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-24 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98832
|
||
* pt.c (maybe_aggr_guide): Handle alias templates appropriately.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-24 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/101182
|
||
* constraint.cc (evaluate_requires_expr): Adjust function comment.
|
||
* cp-gimplify.c (cp_genericize_r) <case REQUIRES_EXPR>: Move to ...
|
||
(cp_fold) <case REQUIRES_EXPR>: ... here.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100918
|
||
* parser.c (cp_parser_lookup_name): Check access of the lookup
|
||
result before we potentially adjust an injected-class-name to
|
||
its TEMPLATE_DECL.
|
||
|
||
2021-07-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-05-26 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/97420
|
||
* cvt.c (noexcept_conv_p): Remove redundant checks and simplify.
|
||
(fnptr_conv_p): Don't call non_reference. Use INDIRECT_TYPE_P
|
||
instead of TYPE_PTR_P.
|
||
* pt.c (convert_nontype_argument_function): Look through
|
||
implicit INDIRECT_REFs before calling strip_fnptr_conv.
|
||
|
||
2021-07-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101098
|
||
* decl.c (function_requirements_equivalent_p): Only compare
|
||
trailing requirements on a specialization.
|
||
|
||
2021-07-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100838
|
||
* call.c (convert_like_internal): Clear tf_no_cleanup when
|
||
recursing.
|
||
(build_user_type_conversion_1): Only add ck_rvalue if
|
||
LOOKUP_ONLYCONVERTING.
|
||
|
||
2021-07-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/86355
|
||
* pt.c (use_pack_expansion_extra_args_p): Don't compare
|
||
args from the same argument pack.
|
||
|
||
2021-07-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-07-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/101087
|
||
* cp-tree.h (unevaluated_p): New.
|
||
* except.c (check_noexcept_r): Use it. Don't walk into
|
||
unevaluated operands.
|
||
|
||
2021-07-07 Jason Merrill <jason@redhat.com>
|
||
|
||
Revert:
|
||
2020-12-02 Jason Merrill <jason@redhat.com>
|
||
|
||
* decl.c (check_initializer): Also look through STMT_EXPR
|
||
and BIND_EXPR.
|
||
|
||
2021-07-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101040
|
||
PR c++/97566
|
||
* class.c (is_empty_field): Handle null argument.
|
||
* constexpr.c (cxx_eval_bare_aggregate): Discard initializer
|
||
for empty field.
|
||
|
||
2021-06-29 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/100752
|
||
* parser.c (cp_parser_declarator): Pass flags down to
|
||
cp_parser_declarator. Also pass static_p/member_p.
|
||
|
||
2021-06-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR inline-asm/100785
|
||
* typeck.c (cxx_mark_addressable): Diagnose trying to make
|
||
bit-fields addressable.
|
||
|
||
2021-06-21 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101106
|
||
* decl.c (duplicate_decls): Condition note on return value of pedwarn.
|
||
|
||
2021-06-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/100902
|
||
* parser.c (cp_parser_omp_target): Call c_omp_adjust_map_clauses
|
||
even when target is combined with other constructs.
|
||
|
||
2021-06-17 Jason Merrill <jason@redhat.com>
|
||
|
||
* init.c (build_vec_init): Preserve the type of base.
|
||
|
||
2021-06-16 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101078
|
||
* pt.c (tsubst_baselink): Update binfos in non-dependent case.
|
||
|
||
2021-06-16 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/101029
|
||
* init.c (build_vec_init): Shortcut [0] case.
|
||
|
||
2021-06-10 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-10 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100946
|
||
* constraint.cc (normalize_placeholder_type_constraints): When
|
||
normalizing a non-templated return-type-requirement, add a dummy
|
||
level to initial_parms.
|
||
|
||
2021-06-09 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/100065
|
||
* decl.c (grokdeclarator): Store a value-dependent
|
||
explicit-specifier even for deduction guides.
|
||
|
||
2021-06-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100963
|
||
* call.c (perfect_conversion_p): Check check_narrowing.
|
||
|
||
2021-06-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/91706
|
||
* semantics.c (baselink_for_fns): Fix BASELINK_BINFO.
|
||
|
||
2021-06-08 Jason Merrill <jason@redhat.com>
|
||
|
||
* module.cc (duplicate_hash::hash): Comment out.
|
||
(trees_in::tree_value): Adjust loop counter.
|
||
|
||
2021-06-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100862
|
||
* pt.c (set_current_access_from_decl): Move to ...
|
||
* class.c (set_current_access_from_decl): ... here.
|
||
(handle_using_decl): Use it to propagate the access of the
|
||
using-enum decl to the copy of the imported enumerator.
|
||
* cp-tree.h (set_current_access_from_decl): Declare.
|
||
* decl.c (build_enumerator): Simplify using make_temp_override
|
||
and set_current_access_from_decl.
|
||
|
||
2021-06-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-06-04 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100102
|
||
* pt.c (tsubst_function_decl): Remove old code for reducing
|
||
args when it has excess levels.
|
||
|
||
2021-06-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/91859
|
||
* call.c (build_op_delete_call): Don't set CALL_FROM_NEW_OR_DELETE_P
|
||
for destroying delete.
|
||
* init.c (build_delete): Don't clobber before destroying delete.
|
||
|
||
2021-06-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100797
|
||
PR c++/95719
|
||
* call.c (build_over_call): Adjust base_binfo in
|
||
resolves_to_fixed_type_p case.
|
||
|
||
2021-05-31 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-05-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/100666
|
||
* call.c (convert_arg_to_ellipsis): For expressions with NULLPTR_TYPE
|
||
and side-effects, temporarily disable -Wunused-result warning when
|
||
building COMPOUND_EXPR.
|
||
|
||
2021-05-28 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-05-26 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100502
|
||
* typeck.c (finish_class_member_access_expr): Disable ahead
|
||
of time access checking during the member lookup.
|
||
|
||
2021-05-20 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100489
|
||
* decl.c (reshape_init_class): Handle designator for
|
||
member of anonymous aggregate here.
|
||
* typeck2.c (process_init_constructor_record): Not here.
|
||
|
||
2021-05-20 Andreas Krebbel <krebbel@linux.ibm.com>
|
||
|
||
Backported from master:
|
||
2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com>
|
||
|
||
PR c++/100281
|
||
* cvt.c (cp_convert_to_pointer): Use the size of the target
|
||
pointer type.
|
||
* tree.c (cp_build_reference_type): Call
|
||
cp_build_reference_type_for_mode with VOIDmode.
|
||
(cp_build_reference_type_for_mode): Rename from
|
||
cp_build_reference_type. Add MODE argument and invoke
|
||
build_reference_type_for_mode.
|
||
(strip_typedefs): Use build_pointer_type_for_mode and
|
||
cp_build_reference_type_for_mode for pointers and references.
|
||
|
||
2021-05-20 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100634
|
||
* pt.c (invalid_nontype_parm_type_p): Return true for COMPLEX_TYPE.
|
||
|
||
2021-05-20 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100659
|
||
* cp-tree.h (CONST_DECL_USING_P): Check for null TREE_TYPE.
|
||
|
||
2021-05-19 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100367
|
||
PR c++/96299
|
||
* method.c (genericize_spaceship): Use fold_build2 for scalar
|
||
operands.
|
||
|
||
2021-05-19 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100261
|
||
* rtti.c (get_tinfo_decl_direct): Check TYPE_TRANSPARENT_AGGR.
|
||
|
||
2021-05-19 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100372
|
||
* tree.c (strip_typedefs): Only look at the pattern of a
|
||
TYPE_PACK_EXPANSION if it's a type.
|
||
|
||
2021-05-18 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100644
|
||
* call.c (perfect_candidate_p): An implicitly deleted move
|
||
is not perfect.
|
||
|
||
2021-05-18 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100205
|
||
PR c++/93314
|
||
* cp-tree.h (cp_evaluated): Add reset parm to constructor.
|
||
* parser.c (cp_parser_constant_expression): Change
|
||
allow_non_constant_p to int. Use cp_evaluated.
|
||
(cp_parser_initializer_clause): Pass 2 to allow_non_constant_p.
|
||
* semantics.c (finish_id_expression_1): Don't mess with
|
||
cp_unevaluated_operand here.
|
||
|
||
2021-05-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-05-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/100362
|
||
* parser.c (cp_parser_class_head): Reinstate calls to pushclass
|
||
and popclass when parsing the base-clause that were removed in
|
||
r11-6815.
|
||
|
||
2021-04-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-04-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/100319
|
||
* semantics.c (finish_omp_clauses): Fix up check that variable
|
||
mentioned in detach clause doesn't appear in data-sharing clauses.
|
||
|
||
2021-04-27 Patrick Palka <ppalka@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-04-24 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/89565
|
||
PR c++/93383
|
||
PR c++/95291
|
||
PR c++/99200
|
||
PR c++/99683
|
||
* pt.c (do_class_deduction): Punt if the initializer is
|
||
type-dependent.
|
||
|
||
2021-04-27 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-04-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/100161
|
||
* pt.c (tsubst_copy_and_build) <case PLUS_EXPR>: Test op0 and
|
||
op1 separately for value- or type-dependence.
|
||
|
||
2021-04-27 Marek Polacek <polacek@redhat.com>
|
||
|
||
Backported from master:
|
||
2021-04-21 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/96380
|
||
* parser.c (cp_parser_enum_specifier): Don't allow defining
|
||
types in enum-base.
|
||
|
||
2021-04-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* module.cc: Remove #error that triggers if DEV-PHASE is empty.
|
||
|
||
2021-04-27 Release Manager
|
||
|
||
* GCC 11.1.0 released.
|
||
|
||
2021-04-19 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/97536
|
||
* decl.c (grokvardecl): Given an error when a concept is not defined
|
||
at namespace scope.
|
||
|
||
2021-04-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/100111
|
||
* constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
|
||
for empty classes into *valp when types don't match even when *valp
|
||
is NULL.
|
||
|
||
2021-04-16 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99803
|
||
* decl.c (make_typename_type): Give an error and return when
|
||
name is is_overloaded_fn.
|
||
* parser.c (cp_parser_class_name): Don't check is_overloaded_fn
|
||
before calling make_typename_type.
|
||
|
||
2021-04-16 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99700
|
||
* constexpr.c (reduced_constant_expression_p): For array
|
||
CONSTRUCTORs, use a dedicated loop that additionally verifies
|
||
the CONSTRUCTOR spans the entire array.
|
||
|
||
2021-04-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99850
|
||
* parser.c (cp_parser_constraint_requires_parens) <case CPP_DEREF>:
|
||
If lambda_p, return pce_ok instead of pce_maybe_postfix.
|
||
|
||
2021-04-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99833
|
||
* pt.c (extract_locals_r): When handling DECL_EXPR of a structured
|
||
binding, add to data.internal also all corresponding structured
|
||
binding decls.
|
||
|
||
2021-04-16 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100079
|
||
* cp-tree.h (first_field): Declare.
|
||
* mangle.c (range_expr_nelts): New.
|
||
(write_expression): Improve class NTTP mangling.
|
||
* pt.c (get_template_parm_object): Clear TREE_HAS_CONSTRUCTOR.
|
||
* tree.c (zero_init_expr_p): Improve class NTTP handling.
|
||
* decl.c: Adjust comment.
|
||
|
||
2021-04-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/80456
|
||
* call.c (build_new_method_call_1): Check again for side-effects
|
||
with a volatile object.
|
||
|
||
2021-04-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100101
|
||
PR c++/99583
|
||
* pt.c (find_parameter_packs_r) [FUNCTION_TYPE]: Walk into
|
||
TYPE_RAISES_EXCEPTIONS here.
|
||
* tree.c (cp_walk_subtrees): Not here.
|
||
|
||
2021-04-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100091
|
||
PR c++/99478
|
||
* parser.c (cp_parser_default_type_template_argument): Set
|
||
parser->local_variables_forbidden_p.
|
||
|
||
2021-04-15 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR c++/98852
|
||
* typeck.c (merge_type_attributes_from): New function.
|
||
(cp_common_type): Use it for vector types.
|
||
|
||
2021-04-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100078
|
||
PR c++/93085
|
||
* pt.c (uses_outer_template_parms): Also look at default
|
||
template argument.
|
||
|
||
2021-04-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/93314
|
||
* semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand
|
||
for a non-static data member in a constant-expression.
|
||
|
||
2021-04-14 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/83476
|
||
PR c++/99885
|
||
* pt.c (deducible_expression): Look through implicit
|
||
INDIRECT_REFs as well.
|
||
|
||
2021-04-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99478
|
||
* parser.c (cp_parser_lambda_expression): Reject lambda
|
||
in template parameter type.
|
||
|
||
2021-04-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/90674
|
||
* decl.c (duplicate_decls): Don't propagate
|
||
DECL_INITIALIZED_IN_CLASS_P to a specialization.
|
||
|
||
2021-04-14 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/88742
|
||
PR c++/49951
|
||
PR c++/58123
|
||
* semantics.c (set_cleanup_locs): New.
|
||
(do_poplevel): Call it.
|
||
* parser.c (cp_parser_compound_statement): Consume the }
|
||
before finish_compound_stmt.
|
||
|
||
2021-04-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100032
|
||
* pt.c (get_underlying_template): Compare TYPE_QUALS.
|
||
|
||
2021-04-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100054
|
||
PR c++/90479
|
||
* init.c (get_nsdmi): Do more context adjustment for local classes.
|
||
|
||
2021-04-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99008
|
||
* pt.c (do_class_deduction): Reject alias CTAD in C++17 mode
|
||
rather than issuing a pedwarn.
|
||
* typeck2.c (build_functional_cast_1): Handle CTAD uniformly
|
||
for consistent diagnostics.
|
||
|
||
2021-04-13 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/91933
|
||
* class.c (build_base_path): Shortcut simple non-pointer case.
|
||
|
||
2021-04-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION
|
||
of the linemap.
|
||
(module_state::write_location): Likewise.
|
||
|
||
2021-04-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/97134
|
||
* pt.c (do_class_deduction): Look through EXPR_PACK_EXPANSION
|
||
when checking if the initializer is an equivalent class
|
||
placeholder template parameter.
|
||
|
||
2021-04-13 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99961
|
||
PR c++/99994
|
||
* constraint.cc (satisfy_normalized_constraints): Set
|
||
cp_unevaluated.
|
||
* parser.c (cp_parser_concept_definition): Likewise.
|
||
(cp_parser_requires_clause_opt): Likewise.
|
||
|
||
2021-04-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/93085
|
||
* pt.c (uses_outer_template_parms): Handle non-type and template
|
||
template parameters specifically.
|
||
|
||
2021-04-11 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/97974
|
||
* decl.c (fixup_anonymous_aggr): Prune all functions from
|
||
CLASSTYPE_MEMBER_VEC.
|
||
|
||
2021-04-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98800
|
||
PR c++/97399
|
||
* parser.c (cp_parser_direct_declarator): Don't
|
||
inject_this_parameter if static_p.
|
||
(cp_parser_omp_var_list_no_open): Parse 'this' even if
|
||
current_class_ptr isn't set for a better diagnostic.
|
||
|
||
2021-04-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99180
|
||
PR c++/93295
|
||
PR c++/93867
|
||
PR c++/99118
|
||
PR c++/96873
|
||
* pt.c (alias_ctad_tweaks): Handle failure better.
|
||
|
||
2021-04-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/100006
|
||
* pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.
|
||
|
||
2021-04-09 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* cp-tree.h (LAMBDA_EXPR_REGENERATED_FROM)
|
||
(LAMBDA_EXPR_REGENERATING_TARGS): Replace these with ...
|
||
(LAMBDA_EXPR_REGEN_INFO): ... this.
|
||
(tree_lambda_expr::regenerated_from)
|
||
(tree_lambda_expr::regenerating_targs): Replace these with ...
|
||
(tree_lambda_expr::regen_info): ... this.
|
||
* constraint.cc (satisfy_declaration_constraints): Adjust
|
||
accordingly.
|
||
* lambda.c (build_lambda_expr): Likewise.
|
||
* pt.c (regenerated_lambda_fn_p): Likewise.
|
||
(most_general_lambda): Likewise.
|
||
(tsubst_lambda_expr): Likewise.
|
||
|
||
2021-04-09 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99806
|
||
* parser.c (cp_parser_member_declaration): Call
|
||
cp_parser_save_default_args even for function templates. Use
|
||
STRIP_TEMPLATE on the declaration we're passing.
|
||
|
||
2021-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99874
|
||
* constraint.cc (get_normalized_constraints_from_decl): Handle
|
||
regenerated lambdas.
|
||
(satisfy_declaration_constraints): Likewise. Check for
|
||
dependent args later.
|
||
* cp-tree.h (LAMBDA_EXPR_INSTANTIATED): Replace with ...
|
||
(LAMBDA_EXPR_REGENERATED_FROM): ... this.
|
||
(LAMBDA_EXPR_REGENERATING_TARGS): New.
|
||
(tree_lambda_expr::regenerated_from): New data member.
|
||
(tree_lambda_expr::regenerating_targs): New data member.
|
||
(add_to_template_args): Declare.
|
||
(regenerated_lambda_fn_p): Likewise.
|
||
(most_general_lambda): Likewise.
|
||
* lambda.c (build_lambda_expr): Set LAMBDA_EXPR_REGENERATED_FROM
|
||
and LAMBDA_EXPR_REGENERATING_TARGS.
|
||
* pt.c (add_to_template_args): No longer static.
|
||
(tsubst_function_decl): Unconditionally propagate constraints on
|
||
the substituted function decl.
|
||
(instantiated_lambda_fn_p): Rename to ...
|
||
(regenerated_lambda_fn_p): ... this. Check
|
||
LAMBDA_EXPR_REGENERATED_FROM instead of
|
||
LAMBDA_EXPR_INSTANTIATED.
|
||
(most_general_lambda): Define.
|
||
(enclosing_instantiation_of): Adjust after renaming
|
||
instantiated_lambda_fn_p.
|
||
(tsubst_lambda_expr): Don't set LAMBDA_EXPR_INSTANTIATED. Set
|
||
LAMBDA_EXPR_REGENERATED_FROM and LAMBDA_EXPR_REGENERATING_TARGS.
|
||
Don't substitute or set constraints on the regenerated lambda.
|
||
|
||
2021-04-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/97679
|
||
* pt.c (build_deduction_guide): Document OUTER_ARGS. Substitute
|
||
them into the propagated constraints.
|
||
|
||
2021-04-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/91849
|
||
* call.c (convert_like_internal): Improve reference diagnostic.
|
||
|
||
2021-04-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99859
|
||
* constexpr.c (addr_of_non_const_var): New function.
|
||
(cxx_bind_parameters_in_call): Set *non_constant_args to true
|
||
even if cp_walk_tree on arg with addr_of_non_const_var callback
|
||
returns true.
|
||
|
||
2021-04-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/94529
|
||
* pt.c (determine_specialization): Improve diagnostic.
|
||
|
||
2021-04-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99844
|
||
* decl.c (build_explicit_specifier): Call
|
||
check_for_bare_parameter_packs.
|
||
* except.c (build_noexcept_spec): Likewise.
|
||
|
||
2021-04-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/41723
|
||
* parser.c (cp_parser_class_name): Check dependent_scope_p.
|
||
|
||
2021-04-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/52625
|
||
* pt.c (maybe_process_partial_specialization): Check
|
||
DECL_SELF_REFERENCE_P.
|
||
|
||
2021-04-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/92918
|
||
* name-lookup.c (push_class_level_binding_1): Do overload a new
|
||
function with a previous using-declaration.
|
||
|
||
2021-04-06 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/96673
|
||
* init.c (get_nsdmi): Don't defer access checking.
|
||
|
||
2021-04-06 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99901
|
||
* decl.c (cp_finish_decl): mark_needed an implicitly inline
|
||
static data member with an out-of-class redeclaration.
|
||
|
||
2021-04-06 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/91241
|
||
* mangle.c (write_compact_number): Add sanity check.
|
||
(write_local_name): Use list_length for parm number.
|
||
|
||
2021-04-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99899
|
||
* pt.c (do_auto_deduction): Don't exit early when deducing the
|
||
array type of a structured binding. Also handle adc_decomp_type
|
||
during constraint checking.
|
||
|
||
2021-04-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/96311
|
||
* typeck.c (check_return_expr): Call mark_exp_read in dependent
|
||
case.
|
||
|
||
2021-04-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98440
|
||
* typeck.c (build_reinterpret_cast_1): Don't perform
|
||
temporary materialization.
|
||
|
||
2021-04-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/95317
|
||
* pt.c (lookup_template_class_1): Do tsubst_enum when
|
||
tsubsting a generic lambda.
|
||
|
||
2021-04-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/95870
|
||
* pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if
|
||
there is no enclosing non-lambda function.
|
||
|
||
2021-04-05 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99380
|
||
* module.cc (name_pending_imports): Drop 'atend' parm. Don't
|
||
query export when not needed.
|
||
(preprocess_module, preprocessed_module): Adjust.
|
||
|
||
2021-04-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99066
|
||
* pt.c (mark_decl_instantiated): Set DECL_EXTERNAL.
|
||
|
||
2021-04-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99201
|
||
* pt.c (class el_data): Add visited field.
|
||
(extract_local_specs): Pass it to cp_walk_tree.
|
||
(extract_locals_r): Walk into the body of a lambda.
|
||
|
||
2021-04-05 Jason Merrill <jason@redhat.com>
|
||
|
||
* ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on
|
||
template result.
|
||
|
||
2021-04-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99643
|
||
* typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.
|
||
|
||
2021-04-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/91416
|
||
* parser.c: Create a GC root for attributes in a decl specifier.
|
||
(cp_parser_type_specifier): Push/pop ->attributes onto/from it.
|
||
|
||
2021-04-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/91217
|
||
* pt.c (tsubst_lambda_expr): Skip the body block from
|
||
DECL_SAVED_TREE.
|
||
|
||
2021-04-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/90664
|
||
* cvt.c (can_convert_qual): Check fnptr_conv_p.
|
||
|
||
2021-04-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/97900
|
||
* pt.c (regenerate_decl_from_template): tsubst_decl
|
||
the parms.
|
||
|
||
2021-04-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99869
|
||
* parser.c (do_range_for_auto_deduction): Pass adc_variable_type
|
||
to do_auto_deduction.
|
||
|
||
2021-04-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99586
|
||
* semantics.c (finish_compound_literal): Check
|
||
template_placeholder_p instead of type_uses_auto.
|
||
|
||
2021-04-02 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/97938
|
||
* cp-tree.h (PACK_EXPANSION_AUTO_P): New.
|
||
* lambda.c (add_capture): Set it.
|
||
* pt.c (tsubst_pack_expansion): Handle it.
|
||
|
||
2021-04-02 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* cp-tree.h (lang_decl_base): Correct module flag comment.
|
||
* module.cc (trees_in::assert_definition): Break out
|
||
not_tmpl var.
|
||
(trees_out::lang_decl_bools): Do not write purview for header units.
|
||
|
||
2021-04-01 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99831
|
||
* method.c (defaulted_late_check): ++ and -- function_depth around
|
||
the call to synthesize_method.
|
||
* pt.c: Remove the saved_trees global.
|
||
|
||
2021-04-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99583
|
||
PR c++/99584
|
||
* tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
|
||
TYPE_RAISES_EXCEPTIONS.
|
||
|
||
2021-04-01 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* mapper-client.cc (INCLUDE_MAP): New; require map to be
|
||
included from system.h.
|
||
* mapper-resolver.cc (INCLUDE_MAP): Likewise.
|
||
|
||
2021-04-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98481
|
||
* mangle.c (write_expression): Adjust.
|
||
* class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
|
||
(mark_abi_tags_r): Likewise.
|
||
|
||
2021-04-01 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99283
|
||
* module.cc (trees_out::decl_node): Adjust importedness reference
|
||
assert.
|
||
(module_state::intercluster_seed): New. Seed both imports and
|
||
inter-cluster references. Broken out of ...
|
||
(module_state::write_cluster): ... here. Call it.
|
||
|
||
2021-03-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99445
|
||
* tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
|
||
|
||
2021-03-31 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/88115
|
||
* mangle.c (write_expression): Adjust the mangling of
|
||
__alignof__.
|
||
|
||
2021-03-31 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99815
|
||
* pt.c (placeholder_type_constraint_dependent_p): Expand
|
||
argument packs to separate the first non-pack argument
|
||
from the rest.
|
||
|
||
2021-03-30 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99283
|
||
* module.cc (dumper::operator): Make less brittle.
|
||
(trees_out::core_bools): VAR_DECLs always have a context.
|
||
(trees_out::key_mergeable): Use same_type_p for asserting.
|
||
(trees_in::read_var_def): Propagate
|
||
DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
|
||
|
||
2021-03-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99790
|
||
* cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.
|
||
|
||
2021-03-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98352
|
||
* method.c (implicitly_declare_fn): Pass &raises to
|
||
synthesized_method_walk.
|
||
|
||
2021-03-26 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99283
|
||
* cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL.
|
||
(SET_TYPE_TEMPLATE_INFO): Restore Alias template setting.
|
||
* decl.c (duplicate_decls): Remove template_decl module flag
|
||
propagation.
|
||
* module.cc (merge_kind_name): Add alias tmpl spec as a thing.
|
||
(dumper::impl::nested_name): Adjust for template-decl module flag
|
||
change.
|
||
(trees_in::assert_definition): Likewise.
|
||
(trees_in::install_entity): Likewise.
|
||
(trees_out::decl_value): Likewise. Remove alias template
|
||
separation of template and type_decl.
|
||
(trees_in::decl_value): Likewise.
|
||
(trees_out::key_mergeable): Likewise,
|
||
(trees_in::key_mergeable): Likewise.
|
||
(trees_out::decl_node): Adjust for template-decl module flag
|
||
change.
|
||
(depset::hash::make_dependency): Likewise.
|
||
(get_originating_module, module_may_redeclare): Likewise.
|
||
(set_instantiating_module, set_defining_module): Likewise.
|
||
* name-lookup.c (name_lookup::search_adl): Likewise.
|
||
(do_pushdecl): Likewise.
|
||
* pt.c (build_template_decl): Likewise.
|
||
(lookup_template_class_1): Remove special alias_template handling
|
||
of DECL_TI_TEMPLATE.
|
||
(tsubst_template_decl): Likewise.
|
||
|
||
2021-03-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99705
|
||
* tree.c (bot_manip): Remap artificial automatic temporaries mentioned
|
||
in DECL_EXPR or in BIND_EXPR_VARS.
|
||
|
||
2021-03-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99672
|
||
* parser.c (cp_parser_postfix_expression): For calls, create
|
||
combined_loc and temporarily set input_location to it before
|
||
calling finish_call_expr.
|
||
|
||
2021-03-25 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/94751
|
||
* call.c (build_over_call): Maybe call mark_used in case
|
||
deduce_inheriting_ctor fails and return error_mark_node.
|
||
* cp-tree.h (deduce_inheriting_ctor): Adjust declaration.
|
||
* method.c (deduce_inheriting_ctor): Return bool if the deduction
|
||
fails.
|
||
(implicitly_declare_fn): If raises is error_mark_node, call
|
||
synthesized_method_walk with diag being true.
|
||
|
||
2021-03-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99745
|
||
* decl2.c (grokbitfield): Diagnose bitfields containing bare parameter
|
||
packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case.
|
||
|
||
2021-03-25 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99331
|
||
* call.c (build_converted_constant_expr_internal): Don't emit
|
||
-Wconversion warnings.
|
||
|
||
2021-03-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99565
|
||
* call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD
|
||
to operand_equal_p.
|
||
* cvt.c (convert_to_void): Preserve location_t on COND_EXPR or
|
||
or COMPOUND_EXPR.
|
||
|
||
2021-03-23 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99283
|
||
* name-lookup.c (check_module_override): Set global or partition
|
||
DUP on the binding vector.
|
||
|
||
2021-03-23 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99318
|
||
* decl2.c (cp_warn_deprecated_use_scopes): Only call
|
||
cp_warn_deprecated_use when decl is a namespace, class, or enum.
|
||
|
||
2021-03-23 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99239
|
||
* decl.c (duplicate_decls): Remove assert about maybe-imported
|
||
artificial decls.
|
||
|
||
2021-03-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99650
|
||
* decl.c (cp_finish_decomp): Diagnose void initializers when
|
||
using tuple_element and get.
|
||
|
||
2021-03-22 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99480
|
||
* module.cc (depset::hash::make_dependency): Propagate flags for
|
||
partial specialization.
|
||
(module_may_redeclare): Handle partial specialization.
|
||
|
||
2021-03-22 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99425
|
||
* cp-tree.h (map_context_from, map_context_to): Delete.
|
||
(add_mergeable_specialization): Add is_alias parm.
|
||
* pt.c (add_mergeable_specialization): Add is_alias parm, add them.
|
||
* module.cc (map_context_from, map_context_to): Delete.
|
||
(trees_in::decl_value): Add specializations later, adjust call.
|
||
Drop useless alias lookup. Set duplicate fn parm context.
|
||
(check_mergeable_decl): Drop context mapping.
|
||
(trees_in::is_matching_decl): Likewise.
|
||
(trees_in::read_function_def): Drop parameter context adjustment
|
||
here.
|
||
|
||
2021-03-22 Martin Liska <mliska@suse.cz>
|
||
|
||
PR c++/99687
|
||
* module.cc (fini_modules): Call vec_free instead of delete.
|
||
|
||
2021-03-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/99230
|
||
* cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
|
||
special code, instead call c_genericize_control_stmt.
|
||
|
||
2021-03-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99456
|
||
* constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from
|
||
INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval
|
||
don't diagnose it, set *non_constant_p nor return t.
|
||
|
||
2021-03-19 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99500
|
||
* parser.c (cp_parser_requirement_parameter_list): Handle
|
||
error_mark_node.
|
||
|
||
2021-03-18 Marek Polacek <polacek@redhat.com>
|
||
|
||
* pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.
|
||
|
||
2021-03-18 Marek Polacek <polacek@redhat.com>
|
||
|
||
* pt.c (tsubst_copy_and_build): Add assert.
|
||
|
||
2021-03-18 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR objc++/49070
|
||
* parser.c (cp_debug_parser): Add Objective-C++ message
|
||
state flag.
|
||
(cp_parser_nested_name_specifier_opt): Allow colon to
|
||
terminate an assignment-expression when parsing Objective-
|
||
C++ messages.
|
||
(cp_parser_objc_message_expression): Set and clear message
|
||
parsing state on entry and exit.
|
||
* parser.h (struct cp_parser): Add a context flag for
|
||
Objective-C++ message state.
|
||
|
||
2021-03-18 Martin Liska <mliska@suse.cz>
|
||
|
||
PR c++/99617
|
||
* coroutines.cc (struct var_nest_node): Init then_cl and else_cl
|
||
to NULL.
|
||
|
||
2021-03-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/97973
|
||
* call.c (conv_unsafe_in_template_p): New.
|
||
(convert_like): Use it.
|
||
|
||
2021-03-17 Anthony Sharp <anthonysharp15@gmail.com>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
* semantics.c (get_class_access_diagnostic_decl): New
|
||
function that examines special cases when a parent
|
||
class causes a private access failure.
|
||
(enforce_access): Slightly modified to call function
|
||
above.
|
||
|
||
2021-03-16 Jason Merrill <jason@redhat.com>
|
||
|
||
* tree.c (cp_tree_equal): Use real_identical.
|
||
|
||
2021-03-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99613
|
||
* decl.c (expand_static_init): For thread guards, call __cxa_atexit
|
||
before calling __cxa_guard_release rather than after it. Formatting
|
||
fixes.
|
||
|
||
2021-03-16 Martin Liska <mliska@suse.cz>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/99108
|
||
* call.c (get_function_version_dispatcher): Handle
|
||
DECL_LOCAL_DECL_P.
|
||
* decl.c (maybe_version_functions): Likewise.
|
||
(maybe_mark_function_versioned): New.
|
||
* name-lookup.c (push_local_extern_decl_alias): No longer static.
|
||
* name-lookup.h (push_local_extern_decl_alias): Adjust.
|
||
|
||
2021-03-16 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99496
|
||
* module.cc (trees_out::decl_value): Adjust typedef streaming,
|
||
indicate whether it is a dependent alias.
|
||
(trees_in::decl_value): Likewise. Set as dependent alias, if it
|
||
is one.
|
||
|
||
2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/99047
|
||
* coroutines.cc (expand_one_await_expression): If the
|
||
await_ready() expression is not a boolean then convert it
|
||
as required.
|
||
|
||
2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/98704
|
||
* coroutines.cc (build_actor_fn): Make destroy index 1
|
||
correspond to the abnormal unhandled_exception() exit.
|
||
Substitute the proxy for the resume index.
|
||
(coro_rewrite_function_body): Arrange to reset the resume
|
||
index and make done = true for a rethrown exception from
|
||
unhandled_exception ().
|
||
(morph_fn_to_coro): Adjust calls to build_actor_fn and
|
||
coro_rewrite_function_body.
|
||
|
||
2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/98480
|
||
* coroutines.cc (replace_continue): Rewrite continue into
|
||
'goto label'.
|
||
(await_statement_walker): Handle await expressions in the
|
||
initializer, condition and iteration expressions of for
|
||
loops.
|
||
|
||
2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/96749
|
||
* coroutines.cc (flatten_await_stmt): Allow for the case
|
||
where a target expression variable only has uses in the
|
||
second part of a compound expression.
|
||
(maybe_promote_temps): Avoid emiting empty statements.
|
||
|
||
2021-03-15 Tobias Burnus <tobias@codesourcery.com>
|
||
|
||
PR c++/99509
|
||
* decl.c (cp_finish_decl): For 'omp declare target implicit' vars,
|
||
ensure that the varpool node is marked as offloadable.
|
||
|
||
2021-03-12 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99238
|
||
* module.cc (depset::hash::add_binding_entity): Assert not
|
||
visited.
|
||
(depset::add::add_specializations): Likewise.
|
||
* name-lookup.c (name_lookup::dedup): New.
|
||
(name_lookup::~name_lookup): Assert not deduping.
|
||
(name_lookup::restore_state): Likewise.
|
||
(name_lookup::add_overload): Replace outlined code with dedup
|
||
call.
|
||
(name_lookup::add_value): Likewise.
|
||
(name_lookup::search_namespace_only): Likewise.
|
||
(name_lookup::adl_namespace_fns): Likewise.
|
||
(name_lookup::adl_class_fns): Likewise.
|
||
(name_lookup::search_adl): Likewise. Add clearing dedup call.
|
||
(name_lookup::search_qualified): Likewise.
|
||
(name_lookup::search_unqualified): Likewise.
|
||
|
||
2021-03-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99507
|
||
* call.c (build_over_call): For immediate evaluation of functions
|
||
that return references, undo convert_from_reference effects before
|
||
calling cxx_constant_value and call convert_from_reference
|
||
afterwards.
|
||
|
||
2021-03-11 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99248
|
||
* name-lookup.c (lookup_elaborated_type_1): Access slot not bind
|
||
when there's a binding vector.
|
||
* ptree.c (cxx_print_xnode): Lazy flags are no longer a thing.
|
||
|
||
2021-03-11 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99528
|
||
* module.cc (enum merge_kind): Delete MK_type_tmpl_spec,
|
||
MK_decl_tmpl_spec.
|
||
(trees_in::decl_value): Adjust add_mergeable_specialization call.
|
||
(trees_out::get_merge_kind): Adjust detecting a partial template
|
||
instantiation.
|
||
(trees_out::key_mergeable): Adjust handling same.
|
||
(trees_in::key_mergeabvle): Likewise.
|
||
|
||
2021-03-10 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99423
|
||
* module.cc (post_load_processing): Assert not gcable.
|
||
(laxy_load_pendings): Extend no-gc region around
|
||
post_load_processing.
|
||
|
||
2021-03-10 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99508
|
||
* decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
|
||
assembler name to the ns alias.
|
||
|
||
2021-03-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99459
|
||
* coroutines.cc (build_co_await): Look through NOP_EXPRs in
|
||
build_special_member_call return value to find the CALL_EXPR.
|
||
Simplify.
|
||
|
||
2021-03-09 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99472
|
||
* parser.c (cp_parser_diagnose_invalid_type_name): Clarify
|
||
that C++20 does not yet imply modules.
|
||
|
||
2021-03-08 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99436
|
||
* name-lookup.c (get_cxx_dialect_name): Add cxx23.
|
||
|
||
2021-03-08 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* lex.c (module_token_filter::resume): Ignore module-decls inside
|
||
header-unit.
|
||
* parser.c (cp_parser_module_declaration): Reject in header-unit.
|
||
|
||
2021-03-08 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99285
|
||
* cp-tree.h (match_mergeable_specialization)
|
||
(add_mergeable_specialization): Adjust parms.
|
||
* module.cc (trees_in::decl_value): Adjust
|
||
add_mergeable_specialization calls.
|
||
(trees_out::key_mergeable): Adjust match_mergeable_specialization
|
||
calls.
|
||
(specialization_add): Likewise.
|
||
* pt.c (match_mergeable_specialization): Do not insert.
|
||
(add_mergeable_specialization): Add to hash table here.
|
||
|
||
2021-03-06 Patrick Palka <ppalka@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99287
|
||
* constexpr.c (cxx_eval_increment_expression): Pass lval when
|
||
evaluating the MODIFY_EXPR, and update 'mod' with the result of
|
||
this evaluation. Check *non_constant_p afterwards. For prefix
|
||
ops, just return 'mod'.
|
||
|
||
2021-03-06 Patrick Palka <ppalka@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/96330
|
||
* pt.c (tsubst_copy) <case TEMPLATE_ID_EXPR>: Rename local
|
||
variable 'fn' to 'tmpl'. Handle a variable template-id by
|
||
calling lookup_template_variable.
|
||
|
||
2021-03-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99365
|
||
* pt.c (unify) <case TEMPLATE_TYPE_PARM>: Pass targs as
|
||
outer_targs to do_auto_deduction.
|
||
(placeholder_type_constraint_dependent_p): Define.
|
||
(do_auto_deduction): When processing_template_decl != 0
|
||
and context is adc_unify and we have constraints, pretend the
|
||
constraints are satisfied instead of punting. Otherwise don't
|
||
punt unless placeholder_type_constraint_dependent_p holds.
|
||
Add some clarifying sanity checks. Add a hack to add missing
|
||
outermost template levels to outer_args before checking
|
||
satisfaction. Don't substitute outer_targs into type if it's
|
||
already been done.
|
||
|
||
2021-03-05 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99374
|
||
* call.c (standard_conversion): When converting pointers to
|
||
member, don't return NULL when the bases are equivalent but
|
||
incomplete.
|
||
|
||
2021-03-05 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99120
|
||
* name-lookup.c (check_local_shadow): Check if the type of decl
|
||
is non-null before checking TYPE_PTR*.
|
||
|
||
2021-03-05 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99245
|
||
* module.cc (module_state::write_cluster): Relax binding assert.
|
||
|
||
2021-03-05 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99377
|
||
* pt.c (instantiate_decl): Call set_instantiating_module.
|
||
|
||
2021-03-05 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/98118
|
||
* coroutines.cc (build_co_await): Use type_build_ctor_call()
|
||
to determine cases when a CTOR needs to be built.
|
||
(flatten_await_stmt): Likewise.
|
||
(morph_fn_to_coro): Likewise.
|
||
|
||
2021-03-05 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/95616
|
||
* coroutines.cc (coro_diagnose_throwing_fn): New helper.
|
||
(coro_diagnose_throwing_final_aw_expr): New helper.
|
||
(build_co_await): Diagnose throwing final await expression
|
||
components.
|
||
(build_init_or_final_await): Diagnose a throwing promise
|
||
final_suspend() call.
|
||
|
||
2021-03-05 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/95615
|
||
* coroutines.cc (struct param_info): Track parameter copies that need
|
||
a DTOR.
|
||
(coro_get_frame_dtor): New helper function factored from build_actor().
|
||
(build_actor_fn): Use coro_get_frame_dtor().
|
||
(morph_fn_to_coro): Track parameters that need DTORs on exception,
|
||
likewise the frame promise and the return object. On exception, run the
|
||
DTORs for these, destroy the frame and then rethrow the exception.
|
||
|
||
2021-03-05 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99389
|
||
* pt.c (instantiate_class_template_1): Set instantiating module
|
||
here.
|
||
|
||
2021-03-05 Tobias Burnus <tobias@codesourcery.com>
|
||
|
||
PR c/99137
|
||
* parser.c (cp_parser_oacc_clause_async): Reject comma expressions.
|
||
|
||
2021-03-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/88146
|
||
PR c++/99362
|
||
* cvt.c (convert_to_void): Revert 2019-10-17 changes. Clarify
|
||
comment.
|
||
|
||
2021-03-04 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99170
|
||
* module.cc (class uintset): Delete.
|
||
(typedef attached_map_t): A hash map.
|
||
(attached_table): Use attached_map_t. Adjust uses ...
|
||
(trees_out::decl_value, trees_in::decl_value): ... here ...
|
||
(trees_out::key_mergeable): ... here ...
|
||
(trees_in::key_mergeable): ... here ...
|
||
(maybe_attach_decl): ... here ...
|
||
(direct_import): ... and here.
|
||
|
||
2021-03-04 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99170
|
||
* cp-tree.h
|
||
* lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p
|
||
rename.
|
||
* module.cc (class pending_key): New.
|
||
(default_hash_traits<pending_key>): New specialization.
|
||
(pending_map_t): New typedef.
|
||
(pending_table): Replace old table.
|
||
(trees_out::lang_decl_bools): Adjust.
|
||
(trees_in::lang_decl_bools): Adjust.
|
||
(trees_in::install_entity): Drop pending member and specialization
|
||
handling.
|
||
(find_pending_key): New.
|
||
(depset::hash::fiund_dependencies): Use it.
|
||
(pendset_lazy_load): Delete.
|
||
(module_state::write_cluster): Don't count pendings here. Bye
|
||
Duff's device-like thing.
|
||
(module_state::write_pendings): Reimplement.
|
||
(module_state::read_pendings): Reimplement.
|
||
(lazy_specializations_p): Delete.
|
||
(module_state::write): Adjust write_pendings call.
|
||
(lazy_load_pendings): New.
|
||
(lazy_load_specializations): Delete.
|
||
(lazy_load_members): Delete.
|
||
(init_modules): Adjust.
|
||
* name-lookup.c (maybe_lazily_declare): Call lazy_load_pendings
|
||
not lazy_load_members.
|
||
(note_pending_specializations): Delete.
|
||
(load_pending_specializations): Delete.
|
||
* name-lookup.h (BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete.
|
||
(BINDING_VECTOR_PENDING_MEMBERS_P): Delete.
|
||
(BINDING_VECTR_PENDING_MEMBERS_P): Delete.
|
||
(note_pending_specializations): Delete.
|
||
(load_pending_specializations): Delete.
|
||
* pt.c (lookup_template_class_1): Call lazy_load_pendings not
|
||
lazy_load_specializations.
|
||
(instantiate_template_class_1): Likewise.
|
||
(instantiate_decl): Call lazy_load_pendings.
|
||
* typeck.c (complete_type): Likewise.
|
||
|
||
2021-03-03 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99170
|
||
* module.cc (post_load_decls): New.
|
||
(lazy_snum, recursive_lazy): Move earlier.
|
||
(module_state::read_cluster): Push cloning onto post_load_decls.
|
||
(post_load_processing): New. Do the cloning here.
|
||
(module_state::read_inits): Call post_load_processing.
|
||
(module_state::read_language): Likewise.
|
||
(lazy_load_binding, lazy_load_specializations): Likewise
|
||
(lazy_load_members): Likewise
|
||
|
||
2021-03-03 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99170
|
||
* module.cc (trees_out::decl_value): Stream specialization keys
|
||
after decl.
|
||
(trees_in::decl_value): Stream them back and insert after
|
||
completing the decl.
|
||
(trees_out::key_mergeable): Drop some streaming here ...
|
||
(trees_in::key_mergeable): ... and here. Don't insert into
|
||
specialization tables.
|
||
|
||
2021-03-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* constraint.cc (struct sat_info): Document the different
|
||
meanings of noisy() and diagnose_unsatisfaction_p() during
|
||
satisfaction and requires-expression evaluation.
|
||
(tsubst_valid_expression_requirement): Take a sat_info instead
|
||
of a subst_info. Perform the substitution quietly first. Fold
|
||
in error-replaying code from diagnose_valid_expression.
|
||
(tsubst_simple_requirement): Take a sat_info instead of a
|
||
subst_info.
|
||
(tsubst_type_requirement_1): New. Fold in error-replaying code
|
||
from diagnose_valid_type.
|
||
(tsubst_type_requirement): Use the above. Take a sat_info
|
||
instead of a subst_info.
|
||
(tsubst_compound_requirement): Likewise. Fold in
|
||
error-replaying code from diagnose_compound_requirement.
|
||
(tsubst_nested_requirement): Take a sat_info instead of a
|
||
subst_info. Fold in error-replaying code from
|
||
diagnose_nested_requirement.
|
||
(tsubst_requirement): Take a sat_info instead of a subst_info.
|
||
(tsubst_requires_expr): Split into two versions, one that takes
|
||
a sat_info argument and another that takes a complain and
|
||
in_decl argument. Remove outdated documentation. Document the
|
||
effects of the sat_info argument. Don't short-circuit
|
||
processing of requirements when diagnosing unsatisfaction,
|
||
mirroring diagnose_requires_expr.
|
||
(satisfy_nondeclaration_constraint) <case REQUIRES_EXPR>: Remove
|
||
assert, and se the three-parameter version of tsubst_requires_expr.
|
||
(diagnose_trait_expr): Make static. Take a template argument
|
||
vector instead of a parameter mapping.
|
||
(diagnose_valid_expression): Remove.
|
||
(diagnose_valid_type): Remove.
|
||
(diagnose_simple_requirement): Remove.
|
||
(diagnose_compound_requirement): Remove.
|
||
(diagnose_type_requirement): Remove.
|
||
(diagnose_nested_requirement): Remove.
|
||
(diagnose_requirement): Remove.
|
||
(diagnose_requires_expr): Remove.
|
||
(diagnose_atomic_constraint): Take a sat_info instead of a
|
||
subst_info. Adjust call to diagnose_trait_expr. Call
|
||
tsubst_requires_expr instead of diagnose_requires_expr.
|
||
(diagnose_constraints): Remove special casing of REQUIRES_EXPR
|
||
and just always call constraint_satisfaction_value.
|
||
|
||
2021-03-03 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* constexpr.c (cxx_eval_call_expression): Adjust call to
|
||
evaluate_concept_check.
|
||
(cxx_eval_constant_expression) <case REQUIRES_EXPR>: Use
|
||
evaluate_requires_expression instead of
|
||
satisfy_constraint_expression.
|
||
<case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
|
||
* constraint.cc (struct sat_info): Adjust comment about which
|
||
satisfaction entrypoints use noisy-unsat.
|
||
(normalize_template_requirements): Remove (and adjust callers
|
||
appropriately).
|
||
(normalize_nontemplate_requirements): Likewise.
|
||
(tsubst_nested_requirement): Use constraint_satisfaction_value
|
||
instead of satisfy_constraint_expression, which'll do the
|
||
noisy replaying of ill-formed quiet satisfaction for us.
|
||
(decl_satisfied_cache): Adjust comment.
|
||
(satisfy_constraint): Rename to ...
|
||
(satisfy_normalized_constraints): ... this.
|
||
(satisfy_associated_constraints): Remove (and make its
|
||
callers check for dependent arguments).
|
||
(satisfy_constraint_expression): Rename to ...
|
||
(satisfy_nondeclaration_constraints): ... this. Assert that
|
||
'args' is empty when 't' is a concept-id. Removing handling
|
||
bare constraint-expressions, and handle REQUIRES_EXPRs
|
||
specially. Adjust comment accordingly.
|
||
(satisfy_declaration_constraints): Assert in the two-parameter
|
||
version that 't' is not a TEMPLATE_DECL. Adjust following
|
||
removal of normalize_(non)?template_requirements and
|
||
satisfy_asociated_constraints.
|
||
(constraint_satisfaction_value): Combine the two- and
|
||
three-parameter versions in the natural way.
|
||
(constraints_satisfied_p): Combine the one- and two-parameter
|
||
versions in the natural way. Improve documentation.
|
||
(evaluate_requires_expr): Define.
|
||
(evaluate_concept_check): Remove 'complain' parameter. Use
|
||
constraint_satisfaction_value instead of
|
||
satisfy_constraint_expression.
|
||
(diagnose_nested_requirement): Adjust following renaming of
|
||
satisfy_constraint_expression.
|
||
(diagnose_constraints): Handle REQUIRES_EXPR by going through
|
||
diagnose_requires_expr directly instead of treating it as a
|
||
constraint-expression. Improve documentation.
|
||
* cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Adjust call
|
||
to evaluate_concept_check.
|
||
<case REQUIRES_EXPR>: Use evaluate_requires_expr instead of
|
||
constraints_satisfied_p.
|
||
<case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
|
||
* cp-tree.h (evaluate_requires_expr): Declare.
|
||
(evaluate_concept_check): Remove tsubst_flag_t parameter.
|
||
(satisfy_constraint_expression): Remove declaration.
|
||
(constraints_satisfied_p): Remove one-parameter declaration.
|
||
Add a default argument to the two-parameter declaration.
|
||
* cvt.c (convert_to_void): Adjust call to
|
||
evaluate_concept_check.
|
||
|
||
2021-03-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/82959
|
||
* call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR
|
||
and COMPOUND_EXPR.
|
||
|
||
2021-03-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/97034
|
||
PR c++/99009
|
||
* pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS.
|
||
(maybe_aggr_guide): Use the original template type where needed. In
|
||
a class member template, partially instantiate the result of
|
||
collect_ctor_idx_types.
|
||
(do_class_deduction): Defer the deduction until the enclosing
|
||
scope is non-dependent.
|
||
|
||
2021-03-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/95675
|
||
* call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR
|
||
if it didn't get one before.
|
||
|
||
2021-03-03 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99344
|
||
* module.cc (trees_out::decl_node): Small refactor.
|
||
(depset::hash::add_binding_entity): Return true on meeting an
|
||
import. Set namespace's import here.
|
||
(module_state:write_namespaces): Inform of purview too.
|
||
(module_state:read_namespaces): Adjust.
|
||
* name-lookup.c (implicitly_export_namespace): Delete.
|
||
(do_pushdecl): Don't call it.
|
||
(push_namespace): Likewise, set purview.
|
||
(add_imported_namespace): Reorder parms.
|
||
* name-lookup.h (add_imported_namespace): Alter param ordering.
|
||
|
||
2021-03-02 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c++/99251
|
||
* class.c (build_base_path): Call build_if_nonnull.
|
||
* cp-tree.h (build_if_nonnull): Declare.
|
||
* rtti.c (ifnonnull): Rename...
|
||
(build_if_nonnull): ...to this. Set no-warning bit on COND_EXPR.
|
||
(build_dynamic_cast_1): Adjust to name change.
|
||
|
||
2021-03-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/96443
|
||
PR c++/96960
|
||
* constraint.cc (type_deducible_p): Don't substitute into the
|
||
constraints, and instead just pass 'args' to do_auto_deduction
|
||
as the outer template arguments.
|
||
(tsubst_parameter_mapping): Remove confused code for handling
|
||
placeholder type arguments.
|
||
(normalize_placeholder_type_constraint): Define.
|
||
(satisfy_constraint_expression): Use it to handle placeholder
|
||
'auto' types.
|
||
* cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define.
|
||
(PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above.
|
||
* pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: Use
|
||
PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
|
||
(make_constrained_placeholder_type): Set
|
||
PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
|
||
(do_auto_deduction): Clarify comments about the outer_targs
|
||
parameter. Rework satisfaction of a placeholder type constraint
|
||
to pass in the complete set of template arguments directly to
|
||
constraints_satisfied_p.
|
||
(splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO
|
||
instead. Also rebuild the the constraint info on the new auto.
|
||
|
||
2021-03-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* constraint.cc (build_parameter_mapping): Rely on the caller to
|
||
determine the in-scope template parameters.
|
||
(norm_info::norm_info): Delegate the tsubst_flags_t constructor
|
||
to the two-parameter constructor. In the two-parameter
|
||
constructor, fold in the definition of make_context, set
|
||
initial_parms appropriately, and don't set the now-removed
|
||
orig_decl member.
|
||
(norm_info::make_context): Remove, now that its only use is
|
||
inlined into the caller.
|
||
(norm_info::update_context): Adjust call to
|
||
build_parameter_mapping to pass in the relevant set of in-scope
|
||
template parameters.
|
||
(norm_info::ctx_parms): Define this member function.
|
||
(norm_info::context): Initialize to NULL_TREE.
|
||
(norm_info::orig_decl): Remove this data member.
|
||
(norm_info::initial_parms): Define this data member.
|
||
(normalize_atom): Adjust call to build_parameter_mapping to pass
|
||
in the relevant set of in-scope template parameters. Use
|
||
info.initial_parms instead of info.orig_decl.
|
||
(normalize_constraint_expression): Take a norm_info object
|
||
instead of a bool. Cache the result of normalization.
|
||
(tsubst_nested_requirement): Call satisfy_constraint_expression
|
||
instead of satisfy_constraint, so that we normalize on demand.
|
||
(satisfy_constraint_expression): Handle a NESTED_REQ argument.
|
||
Adjust call to normalize_constraint_expression.
|
||
(finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ
|
||
to current_template_parms.
|
||
(diagnose_nested_requirements): Go through
|
||
satisfy_constraint_expression, as with tsubst_nested_requirement.
|
||
|
||
2021-03-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* constraint.cc (tsubst_parameter_mapping): Canonicalize the
|
||
arguments of a substituted TYPE_ARGUMENT_PACK even if we've
|
||
started with a TYPE_ARGUMENT_PACK.
|
||
(finish_requires_expr): Don't set DECL_CONTEXT and
|
||
CONSTRAINT_VAR_P on each of the introduced parameters here.
|
||
* parser.c (cp_parser_requirement_parameter_list): Instead set
|
||
these fields earlier, here.
|
||
* pt.c (do_auto_deduction): Canonicalize the result of
|
||
do_auto_deduction. Pass 'complain' to finish_decltype_type.
|
||
|
||
2021-03-02 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* constraint.cc (tsubst_simple_requirement): Just return
|
||
boolean_true_node on success.
|
||
(tsubst_type_requirement): Likewise.
|
||
(tsubst_compound_requirement): Likewise.
|
||
(tsubst_nested_requirement): Likewise.
|
||
(tsubst_requirement_body): Remove.
|
||
(check_constaint_variables): Rename to ...
|
||
(check_constraint_variables): ... this.
|
||
(tsubst_constraint_variables): Adjust.
|
||
(tsubst_requires_expr): Fold tsubst_requirement_body into here.
|
||
|
||
2021-03-01 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99294
|
||
* class.c (fixup_type_variants): Propagate mode, precision,
|
||
alignment & emptiness.
|
||
* module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW.
|
||
(trees_in::tree_node): Rematerialize alignment here.
|
||
|
||
2021-02-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/90333
|
||
* parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
|
||
between () and ->.
|
||
|
||
2021-02-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* parser.c (cp_parser_lambda_declarator_opt): Implement
|
||
P1102R2 - Down with ()! Make ()s optional before lambda specifiers
|
||
for -std={c,gnu}++2b or with pedwarn in earlier versions.
|
||
|
||
2021-02-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/95451
|
||
* lambda.c (is_lambda_ignored_entity): Before checking for
|
||
LAMBDA_FUNCTION_P, use OVL_FIRST. Drop FUNCTION_DECL check.
|
||
|
||
2021-02-26 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98810
|
||
* pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const
|
||
to a class non-type template argument that needs it.
|
||
|
||
2021-02-26 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98990
|
||
* pt.c (splice_late_return_type): Rebuild the entire return type
|
||
if we have to adjust the level of an auto within.
|
||
(type_uses_auto): Adjust call to find_type_usage.
|
||
* type-utils.h (find_type_usage): Revert r10-6571 change that
|
||
made this function return a pointer to the auto node.
|
||
|
||
2021-02-25 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99213
|
||
PR c++/94521
|
||
* error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of
|
||
TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope.
|
||
|
||
2021-02-25 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/99103
|
||
* pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'.
|
||
(maybe_aggr_guide): Fix order of arguments to is_spec_or_derived.
|
||
|
||
2021-02-25 Marek Polacek <polacek@redhat.com>
|
||
|
||
DR 1312
|
||
PR c++/99176
|
||
* constexpr.c (is_std_construct_at): New overload.
|
||
(is_std_allocator_allocate): New overload.
|
||
(cxx_eval_call_expression): Use the new overloads.
|
||
(cxx_eval_constant_expression): Reject casting
|
||
from void * as per DR 1312. Don't check can_convert.
|
||
|
||
2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/97587
|
||
* coroutines.cc (struct param_info): Track rvalue refs.
|
||
(morph_fn_to_coro): Track rvalue refs, and call the promise
|
||
CTOR with the frame copy of passed parms.
|
||
|
||
2021-02-25 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/95822
|
||
* coroutines.cc (morph_fn_to_coro): Unconditionally remove any
|
||
set throwing_cleanup marker.
|
||
|
||
2021-02-25 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99166
|
||
* module.cc (module_state::inform_cmi_p): Renamed field.
|
||
(module_state::do_import): Adjust.
|
||
(init_modules, finish_module_processing): Likewise.
|
||
(handle_module_option): Likewise.
|
||
|
||
2021-02-25 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98318
|
||
* mapper-client.cc (module_client::open_module_client): Fix typo
|
||
of fd init.
|
||
|
||
2021-02-24 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98718
|
||
* module.cc (ool): New indirection vector.
|
||
(loc_spans::maybe_propagate): Location is not optional.
|
||
(loc_spans::open): Likewise. Assert monotonically advancing.
|
||
(module_for_ordinary_loc): Use ool indirection vector.
|
||
(module_state::write_prepare_maps): Do not count empty macro
|
||
expansions. Elide empty spans.
|
||
(module_state::write_macro_maps): Skip empty expansions.
|
||
(ool_cmp): New qsort comparator.
|
||
(module_state::write): Create and destroy ool vector.
|
||
(name_pending_imports): Fix dump push/pop.
|
||
(preprocess_module): Likewise. Add more dumping.
|
||
(preprocessed_module): Likewise.
|
||
|
||
2021-02-24 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR c++/96251
|
||
* coroutines.cc (coro_common_keyword_context_valid_p): Suppress
|
||
error reporting when instantiating for a constexpr.
|
||
|
||
2021-02-23 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99208
|
||
* decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
|
||
identity.
|
||
|
||
2021-02-23 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/95468
|
||
* pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
|
||
over from tsubst_copy.
|
||
|
||
2021-02-23 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* pt.c (instantiation_dependent_expression_p): Check
|
||
processing_template_decl before calling
|
||
potential_constant_expression.
|
||
|
||
2021-02-22 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99174
|
||
* module.cc (struct module_state): Add visited_p flag.
|
||
(name_pending_imports): Use it to avoid duplicate requests.
|
||
(preprocess_module): Don't read preprocessor state if we failed to
|
||
load a module's config.
|
||
|
||
2021-02-22 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99153
|
||
* decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
|
||
to common-path.
|
||
* module.cc (set_defining_module): Add assert.
|
||
|
||
2021-02-19 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98741
|
||
* module.cc (pending_imports): New.
|
||
(declare_module): Adjust test condition.
|
||
(name_pending_imports): New.
|
||
(preprocess_module): Reimplement using pending_imports.
|
||
(preprocessed_module): Move name-getting to name_pending_imports.
|
||
* name-lookup.c (append_imported_binding_slot): Assert module
|
||
ordering is increasing.
|
||
|
||
2021-02-19 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* module.cc (note_cmis): New.
|
||
(struct module_state): Add inform_read_p bit.
|
||
(module_state::do_import): Inform of CMI location, if enabled.
|
||
(init_modules): Canonicalize note_cmis entries.
|
||
(handle_module_option): Handle -flang-info-module-read=FOO.
|
||
|
||
2021-02-19 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/96926
|
||
* call.c (perfect_conversion_p): Limit rvalueness
|
||
test to reference bindings.
|
||
|
||
2021-02-19 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/96926
|
||
* call.c (perfect_conversion_p): New.
|
||
(perfect_candidate_p): New.
|
||
(add_candidates): Ignore templates after a perfect non-template.
|
||
|
||
2021-02-18 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99023
|
||
* module.cc (canonicalize_header_name): Use
|
||
cpp_probe_header_unit.
|
||
(maybe_translate_include): Fix note_includes comparison.
|
||
(init_modules): Fix note_includes string termination.
|
||
|
||
2021-02-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99132
|
||
* cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use
|
||
cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check
|
||
for immediate function calls.
|
||
|
||
2021-02-17 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99023
|
||
* module.cc (struct macro_export): Add GTY markers.
|
||
(macro_exports): Likewise, us a va_gc Vector.
|
||
|
||
2021-02-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/99106
|
||
* init.c (build_zero_init_1): For flexible array members just return
|
||
NULL_TREE instead of returning empty CONSTRUCTOR with non-complete
|
||
ARRAY_TYPE.
|
||
|
||
2021-02-17 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99116
|
||
* name-lookup.c (do_pushdecl): Don't peek under template_parm
|
||
bindings here ...
|
||
(set_identifier_type_value_with_scope): ... or here.
|
||
(do_pushtag): Only set_identifier_type_value_with_scope at
|
||
non-class template parm scope, and use parent scope.
|
||
|
||
2021-02-17 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99071
|
||
* name-lookup.c (maybe_record_mergeable_decl): Deref the correct
|
||
pointer.
|
||
|
||
2021-02-17 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR debug/96997
|
||
PR c++/94034
|
||
* tree.c (build_aggr_init_expr): Revert r10-7718 change.
|
||
|
||
2021-02-12 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* module.cc (module_state::write_cluster): Check bindings for
|
||
imported using-decls.
|
||
|
||
2021-02-12 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99040
|
||
* module.cc (trees_in::decl_value): Call add_module_namespace_decl
|
||
for new namespace-scope entities.
|
||
(module_state::read_cluster): Don't call add_module_decl here.
|
||
* name-lookup.h (add_module_decl): Rename to ...
|
||
(add_module_namespace_decl): ... this.
|
||
* name-lookup.c (newbinding_bookkeeping): Move into ...
|
||
(do_pushdecl): ... here. Its only remaining caller.
|
||
(add_module_decl): Rename to ...
|
||
(add_module_namespace_decl): ... here. Add checking-assert for
|
||
circularity. Don't call newbinding_bookkeeping, just extern_c
|
||
checking and incomplete var checking.
|
||
|
||
2021-02-12 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99039
|
||
PR c++/99040
|
||
* cp-tree.h (CPTI_GLOBAL_TYPE): Delete.
|
||
(global_type_node): Delete.
|
||
(IDENTIFIER_TYPE_VALUE): Delete.
|
||
(IDENTIFIER_HAS_TYPE_VALUE): Delete.
|
||
(get_type_value): Delete.
|
||
* name-lookup.h (identifier_type_value): Delete.
|
||
* name-lookup.c (check_module_override): Don't
|
||
SET_IDENTIFIER_TYPE_VALUE here.
|
||
(do_pushdecl): Nor here.
|
||
(identifier_type_value_1, identifier_type_value): Delete.
|
||
(set_identifier_type_value_with_scope): Only
|
||
SET_IDENTIFIER_TYPE_VALUE for local and class scopes.
|
||
(pushdecl_nanmespace_level): Remove shadow stack nadgering.
|
||
(do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE.
|
||
* call.c (check_dtor_name): Use lookup_name.
|
||
* decl.c (cxx_init_decl_processing): Drop global_type_node.
|
||
* decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE
|
||
here.
|
||
* init.c (get_type_value): Delete.
|
||
* pt.c (instantiate_class_template_1): Don't call pushtag or
|
||
SET_IDENTIFIER_TYPE_VALUE here.
|
||
(tsubst): Assert never an identifier.
|
||
(dependent_type_p): Drop global_type_node assert.
|
||
* typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE
|
||
to determine ctorness.
|
||
|
||
2021-02-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/97742
|
||
* parser.c (cp_parser_requirement_seq): Stop iterating after reaching
|
||
CPP_EOF.
|
||
|
||
2021-02-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/97246
|
||
PR c++/94546
|
||
* pt.c (extract_fnparm_pack): Check DECL_PACK_P here.
|
||
(register_parameter_specializations): Not here.
|
||
|
||
2021-02-11 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/95888
|
||
* pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
|
||
for the partial instantiation.
|
||
|
||
2021-02-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/99033
|
||
* init.c (build_zero_init_1): Handle zero initialiation of
|
||
flexible array members like initialization of [0] arrays.
|
||
Use integer_minus_onep instead of comparison to integer_minus_one_node
|
||
and integer_zerop instead of comparison against size_zero_node.
|
||
Formatting fixes.
|
||
|
||
2021-02-11 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/99063
|
||
* semantics.c (finish_do_stmt): Check for unexpanded parameter packs.
|
||
|
||
2021-02-11 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/97582
|
||
* name-lookup.c (op_unqualified_lookup): Handle an ambiguous
|
||
lookup result by discarding it if the first element is a
|
||
class-scope declaration, otherwise return it.
|
||
(push_operator_bindings): Handle an ambiguous lookup result by
|
||
doing push_local_binding on each element in the list.
|
||
|
||
2021-02-11 Marek Polacek <polacek@redhat.com>
|
||
|
||
* parser.c (cp_parser_selection_statement): Use vec_free.
|
||
|
||
2021-02-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98988
|
||
PR c++/99031
|
||
* constexpr.c: Include cgraph.h.
|
||
(cxx_eval_call_expression): Call varpool_node::finalize_decl on
|
||
heap artificial vars.
|
||
(cxx_eval_outermost_constant_expr): Remove varpool nodes for
|
||
heap artificial vars.
|
||
|
||
2021-02-10 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/99030
|
||
* pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
|
||
answer if there's no local specialization.
|
||
|
||
2021-02-09 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98944
|
||
* module.cc (module_state::is_rooted): Rename to ...
|
||
(module_state::has_location): ... here. Adjust callers.
|
||
(module_state::read_partitions): Adjust validity check.
|
||
Don't overwrite a known location.
|
||
|
||
2021-02-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/96905
|
||
* pt.c (mark_decl_instantiated): Exit early if consteval.
|
||
|
||
2021-02-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98326
|
||
PR c++/20408
|
||
* cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
|
||
parm.
|
||
|
||
2021-02-09 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98994
|
||
PR c++/97566
|
||
* constexpr.c (cxx_eval_store_expression): Only skip empty fields in
|
||
RECORD_TYPE.
|
||
|
||
2021-02-08 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* decl.c (start_cleanup_fn): Push function into
|
||
namespace.
|
||
|
||
2021-02-08 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98531
|
||
* cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare.
|
||
* decl.c (push_abi_namespace, pop_abi_namespace): Moved
|
||
from rtti.c, add default namespace arg.
|
||
(check_redeclaration_exception_specification): Allow a lazy
|
||
builtin's eh spec to differ from an lready-declared user
|
||
declaration.
|
||
(declare_global_var): Use push/pop_abi_namespace.
|
||
(get_atexit_node): Push the fndecl into a namespace.
|
||
* rtti.c (push_abi_namespace, pop_abi_namespace): Moved to
|
||
decl.c.
|
||
|
||
2021-02-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
* cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.
|
||
|
||
2021-02-05 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98947
|
||
* call.c (build_conditional_expr_1): Don't call mark_lvalue_use
|
||
on arg2/arg3.
|
||
* expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when
|
||
issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if
|
||
a warning was emitted.
|
||
|
||
2021-02-05 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/96462
|
||
* name-lookup.c (lookup_using_decl): Hoist the destructor check.
|
||
|
||
2021-02-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/97878
|
||
* decl.c (check_array_initializer): For structured bindings, require
|
||
the array type to be complete.
|
||
|
||
2021-02-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98717
|
||
* constraint.cc (build_concept_check_arguments): Remove assert.
|
||
(build_concept_check): Allow empty args.
|
||
|
||
2021-02-04 Tom Greenslade (thomgree) <thomgree@cisco.com>
|
||
|
||
PR c++/90926
|
||
* call.c (can_convert_array): Extend to handle all valid aggregate
|
||
initializers of an array; including by string literals, not just by
|
||
brace-init-list.
|
||
(build_aggr_conv): Call can_convert_array more often, not just in
|
||
brace-init-list case.
|
||
* typeck2.c (array_string_literal_compatible_p): New function.
|
||
(digest_init_r): call array_string_literal_compatible_p
|
||
* cp-tree.h: (array_string_literal_compatible_p): Declare.
|
||
|
||
2021-02-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98802
|
||
* pt.c (do_class_deduction): No aggregate guide if any_dguides_p.
|
||
|
||
2021-02-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/95192
|
||
* pt.c (tsubst_attribute): Handle error.
|
||
(apply_late_template_attributes): Return false on error.
|
||
(tsubst_function_decl): Check its return value.
|
||
(tsubst_decl): Likewise.
|
||
(push_template_decl): Assert current_template_parms.
|
||
(tsubst_template_decl): Set current_template_parms.
|
||
|
||
2021-02-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98951
|
||
* call.c (struct z_candidate): Mark rewritten and reversed as const.
|
||
(struct NonPublicField): Mark operator() as const.
|
||
(struct NonTrivialField): Likewise.
|
||
|
||
2021-02-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98926
|
||
PR c++/98570
|
||
* pt.c (spec_hasher::equal): Set processing_template_decl.
|
||
* Make-lang.in (check-g++-strict-gc): Add --param
|
||
hash-table-verification-limit=10000.
|
||
|
||
2021-02-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98899
|
||
* parser.c (cp_parser_class_specifier_1): Use any possible
|
||
DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN.
|
||
(cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS.
|
||
* pt.c (tsubst_exception_specification): Stash new_specs into
|
||
DEFPARSE_INSTANTIATIONS.
|
||
* tree.c (fixup_deferred_exception_variants): Use
|
||
UNPARSED_NOEXCEPT_SPEC_P.
|
||
|
||
2021-02-02 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98929
|
||
PR c++/96199
|
||
* error.c (dump_expr): Ignore dummy object.
|
||
* pt.c (tsubst_baselink): Handle dependent scope.
|
||
|
||
2021-02-01 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98295
|
||
* constexpr.c (cxx_eval_array_reference): Also set
|
||
new_ctx.object when setting new_ctx.ctor.
|
||
|
||
2021-02-01 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98355
|
||
* parser.c (cp_parser_has_attribute_expression): Use
|
||
uses_template_parms instead of type_dependent_expression_p.
|
||
|
||
2021-02-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98570
|
||
* cp-tree.h: Declare it.
|
||
* pt.c (comparing_dependent_aliases): New flag.
|
||
(template_args_equal, spec_hasher::equal): Set it.
|
||
(dependent_alias_template_spec_p): Assert that we don't
|
||
get non-types other than error_mark_node.
|
||
(instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY
|
||
on complex alias specializations. Set TYPE_DEPENDENT_P here.
|
||
(tsubst_decl): Not here.
|
||
* module.cc (module_state::read_cluster): Set
|
||
comparing_dependent_aliases instead of
|
||
comparing_specializations.
|
||
* tree.c (cp_tree_equal): Remove comparing_specializations
|
||
module handling.
|
||
* typeck.c (structural_comptypes): Adjust.
|
||
(comptypes): Remove comparing_specializations handling.
|
||
|
||
2021-01-29 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98843
|
||
* module.cc (module_state_config): Add num_entities field.
|
||
(module_state::read_entities): The entity_ary span is
|
||
already allocated.
|
||
(module_state::write_config): Write num_entities.
|
||
(module_state::read_config): Read num_entities.
|
||
(module_state::write): Set config's num_entities.
|
||
(module_state::read_initial): Allocate the entity ary
|
||
span here.
|
||
(module_state::read_language): Do not set entity_lwm
|
||
here.
|
||
|
||
2021-01-29 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/96137
|
||
* parser.c (cp_parser_class_name): If parser->scope is
|
||
error_mark_node, return it, otherwise continue.
|
||
|
||
2021-01-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98841
|
||
* typeck.c (build_x_indirect_ref): For *this, return current_class_ref.
|
||
|
||
2021-01-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/33661
|
||
PR c++/98847
|
||
* decl.c (cp_finish_decl): For register vars with asmspec in templates
|
||
call set_user_assembler_name and set DECL_HARD_REGISTER.
|
||
* pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars,
|
||
pass asmspec_tree to cp_finish_decl.
|
||
|
||
2021-01-28 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98770
|
||
* module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME
|
||
check order.
|
||
(trees_in::decl_value): Do typedef frobbing only when installing
|
||
a new typedef, adjust is_matching_decl call. Swap is_typedef
|
||
& TYPE_NAME check.
|
||
(trees_in::is_matching_decl): Add is_typedef parm. Adjust variable
|
||
names and deal with typedef checking.
|
||
|
||
2021-01-27 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/97874
|
||
* name-lookup.c (lookup_using_decl): Clean up handling
|
||
of dependency and inherited constructors.
|
||
(finish_nonmember_using_decl): Handle DECL_DEPENDENT_P.
|
||
* pt.c (tsubst_expr): Handle DECL_DEPENDENT_P.
|
||
|
||
2021-01-26 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/97474
|
||
* call.c (type_passed_as): Don't mark invisiref restrict.
|
||
|
||
2021-01-26 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/97566
|
||
PR c++/98463
|
||
* class.c (layout_class_type): An empty field gets size 0.
|
||
(is_empty_field): New.
|
||
(check_bases): Check it.
|
||
* cp-tree.h (is_empty_field): Declare it.
|
||
* constexpr.c (cxx_eval_store_expression): Check it.
|
||
(cx_check_missing_mem_inits): Likewise.
|
||
* init.c (perform_member_init): Likewise.
|
||
* typeck2.c (process_init_constructor_record): Likewise.
|
||
|
||
2021-01-25 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c++/98646
|
||
* cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING.
|
||
|
||
2021-01-25 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98463
|
||
* constexpr.c (get_or_insert_ctor_field): Add check.
|
||
(cxx_eval_store_expression): Handle discontinuity of refs.
|
||
|
||
2021-01-23 Anthony Sharp <anthonysharp15@gmail.com>
|
||
|
||
* call.c (complain_about_access): Altered function.
|
||
* cp-tree.h (complain_about_access): Changed parameters of function.
|
||
(get_parent_with_private_access): Declared new function.
|
||
* search.c (get_parent_with_private_access): Defined new function.
|
||
* semantics.c (enforce_access): Modified function.
|
||
* typeck.c (complain_about_unrecognized_member): Updated function
|
||
arguments in complain_about_access.
|
||
|
||
2021-01-23 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/97399
|
||
* cp-tree.h (shared_member_p): Adjust declaration.
|
||
* parser.c (cp_parser_init_declarator): If the storage class
|
||
specifier is sc_static, pass true for static_p to
|
||
cp_parser_declarator.
|
||
(cp_parser_direct_declarator): Don't do inject_this_parm when
|
||
the declarator is a friend.
|
||
* search.c (shared_member_p): Change return type to bool and
|
||
adjust function body accordingly. Return false for a dependent
|
||
USING_DECL instead of aborting.
|
||
* semantics.c (finish_qualified_id_expr): Rely on shared_member_p
|
||
even when type-dependent.
|
||
|
||
2021-01-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/96623
|
||
* parser.c (inject_parm_decls): Remove a redundant assignment.
|
||
(cp_parser_class_specifier_1): Clear current_class_{ptr,ref}
|
||
before calling inject_parm_decls.
|
||
|
||
2021-01-22 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98744
|
||
* call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P.
|
||
|
||
2021-01-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/95693
|
||
* init.c (build_zero_init_1): Revert the 2018-03-06 change to
|
||
return build_zero_cst for reference types.
|
||
* typeck2.c (process_init_constructor_record): Instead call
|
||
build_zero_cst here during error recovery instead of build_zero_init.
|
||
|
||
2021-01-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98545
|
||
* mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses
|
||
warnings regardless of abi_version_at_least.
|
||
(write_expression): When the expression is a dependent name
|
||
and an operator name, write "on" before writing its name.
|
||
|
||
2021-01-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/97966
|
||
* pt.c (instantiate_class_template_1): Instantiate members
|
||
marked with attribute used only after we're done instantiating
|
||
the class.
|
||
|
||
2021-01-21 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/71879
|
||
* semantics.c (finish_decltype_type): Set up a cp_unevaluated
|
||
sentinel at the start of the function. Remove a now-redundant
|
||
manual adjustment of cp_unevaluated_operand.
|
||
|
||
2021-01-21 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98624
|
||
* module.cc (depset::hash::find_dependencies): Add
|
||
module arg.
|
||
(trees_out::core_vals): Check state before calling
|
||
write_location.
|
||
(sort_cluster, module_state::write): Adjust
|
||
find_dependencies call.
|
||
|
||
2021-01-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98672
|
||
* constexpr.c (check_for_return_continue_data): Add break_stmt member.
|
||
(check_for_return_continue): Also look for BREAK_STMT. Handle
|
||
SWITCH_STMT by ignoring break_stmt from its body.
|
||
(potential_constant_expression_1) <case FOR_STMT>,
|
||
<case WHILE_STMT>: If the condition isn't constant true, check if
|
||
the loop body can contain a return stmt.
|
||
<case SWITCH_STMT>: Adjust check_for_return_continue_data initializer.
|
||
<case IF_STMT>: If recursion with tf_none is successful,
|
||
merge *jump_target from the branches - returns with highest priority,
|
||
breaks or continues lower. If then branch is potentially constant and
|
||
doesn't return, check the else branch if it could return, break or
|
||
continue.
|
||
|
||
2021-01-21 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98530
|
||
* name-lookup.c (lookup_class_binding): Rearrange a stat-hack.
|
||
|
||
2021-01-20 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of
|
||
signed type.
|
||
|
||
2021-01-20 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/95434
|
||
* pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: If tsubsting
|
||
CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM,
|
||
adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
|
||
|
||
2021-01-20 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/82613
|
||
* parser.c (cp_parser_class_head): Defer access checking when
|
||
parsing the base-clause until all bases are seen and attached
|
||
to the class type.
|
||
* pt.c (instantiate_class_template): Likewise when substituting
|
||
into dependent bases.
|
||
|
||
2021-01-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98742
|
||
* semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If
|
||
error_operand_p, remove clause without further checking. Check
|
||
for non-NULL TYPE_NAME.
|
||
|
||
2021-01-19 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98659
|
||
* pt.c (maybe_instantiate_noexcept): Return false if FN is
|
||
error_mark_node.
|
||
|
||
2021-01-19 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98687
|
||
* name-lookup.c (push_using_decl_bindings): New, broken out of...
|
||
(finish_nonmember_using_decl): ...here.
|
||
* name-lookup.h (push_using_decl_bindings): Update declaration.
|
||
* pt.c (tsubst_expr): Update the call to push_using_decl_bindings.
|
||
|
||
2021-01-19 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/41437
|
||
PR c++/58993
|
||
* search.c (friend_accessible_p): If scope is a hidden friend
|
||
defined inside a dependent class, consider access from the
|
||
class.
|
||
* parser.c (cp_parser_late_parsing_for_member): Don't push a
|
||
dk_no_check access state.
|
||
|
||
2021-01-19 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98333
|
||
* parser.c (cp_parser_class_specifier_1): Perform late-parsing
|
||
of NSDMIs before late-parsing of noexcept-specifiers.
|
||
|
||
2021-01-19 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* module.cc (identifier): Merge overloads.
|
||
|
||
2021-01-19 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98624
|
||
* module.cc (trees_out::write_location): Make static.
|
||
|
||
2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
|
||
|
||
* parser.c (cp_parser_omp_clause_detach): New.
|
||
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH.
|
||
(OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
|
||
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
|
||
* semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
|
||
Prevent use of detach with mergeable and overriding the data sharing
|
||
mode of the event handle.
|
||
|
||
2021-01-15 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98538
|
||
* tree.c (cp_build_qualified_type_real): Propagate an array's
|
||
dependentness to the copy, if known.
|
||
|
||
2021-01-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/98642
|
||
* call.c (unsafe_return_slot_p): Return int.
|
||
(init_by_return_slot_p): Split out from...
|
||
(unsafe_copy_elision_p): ...here.
|
||
(unsafe_copy_elision_p_opt): New name for old meaning.
|
||
(build_over_call): Adjust.
|
||
(make_safe_copy_elision): New.
|
||
* typeck2.c (split_nonconstant_init_1): Elide copy from safe
|
||
list-initialization.
|
||
* cp-tree.h: Adjust.
|
||
|
||
2021-01-15 Jason Merrill <jason@redhat.com>
|
||
|
||
* call.c (base_ctor_for, make_base_init_ok): New.
|
||
(build_over_call): Use make_base_init_ok.
|
||
|
||
2021-01-15 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/63707
|
||
* tree.c (build_vec_init_expr): Don't call build_vec_init_elt
|
||
if we got a CONSTRUCTOR.
|
||
|
||
2021-01-15 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98591
|
||
* lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only.
|
||
|
||
2021-01-14 Jason Merrill <jason@redhat.com>
|
||
|
||
* typeck2.c (process_init_constructor_record): Use fldtype
|
||
variable consistently.
|
||
|
||
2021-01-14 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98372
|
||
* tree.c (cp_tree_equal): Correct map_context logic.
|
||
|
||
2021-01-13 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98231
|
||
* name-lookup.c (push_using_decl_bindings): New.
|
||
* name-lookup.h (push_using_decl_bindings): Declare.
|
||
* pt.c (tsubst_expr): Call push_using_decl_bindings.
|
||
|
||
2021-01-13 Nathan Sidwell <nathan@acm.org>
|
||
|
||
PR c++/98626
|
||
* module.cc (module_add_import_initializers): Pass a
|
||
zero-element argument vector.
|
||
|
||
2021-01-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98611
|
||
* tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit
|
||
the template of a CTAD placeholder.
|
||
|
||
2021-01-12 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98620
|
||
* typeck2.c (process_init_constructor_record): Don't emit
|
||
-Wmissing-field-initializers warnings in unevaluated contexts.
|
||
|
||
2021-01-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98481
|
||
* class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1
|
||
for types.
|
||
(mark_abi_tags_r): Likewise.
|
||
* decl2.c (min_vis_r): Likewise.
|
||
* tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through
|
||
typedefs.
|
||
|
||
2021-01-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98551
|
||
* constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P
|
||
instead of AGGREGATE_TYPE_P before calling replace_result_decl.
|
||
|
||
2021-01-08 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR c++/98515
|
||
* semantics.c (check_accessibility_of_qualified_id): Punt if
|
||
we're checking access of a scoped non-static member inside a
|
||
class template.
|
||
|
||
2021-01-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98329
|
||
* pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call
|
||
cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set
|
||
its location.
|
||
(tsubst_copy_and_build): Handle BIT_CAST_EXPR.
|
||
|
||
2021-01-07 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98441
|
||
* decl.c (grokdeclarator): Move the !funcdecl_p check inside the
|
||
!late_return_type block.
|
||
|
||
2021-01-07 Jason Merrill <jason@redhat.com>
|
||
|
||
* constexpr.c (cxx_bind_parameters_in_call): Add comment.
|
||
(cxx_eval_store_expression): Add comment.
|
||
|
||
2021-01-07 Jason Merrill <jason@redhat.com>
|
||
|
||
* call.c (has_next): Factor out from...
|
||
(next_conversion): ...here.
|
||
(strip_standard_conversion): And here.
|
||
(is_subseq): And here.
|
||
(build_conv): Check it.
|
||
(standard_conversion): Don't call build_conv
|
||
for ck_identity.
|
||
|
||
2021-01-06 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c++/95768
|
||
* error.c (dump_expr): Call c_pretty_printer::unary_expression.
|
||
|
||
2021-01-05 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* pt.c (unify) <case TEMPLATE_PARM_INDEX>: After walking into
|
||
the type of the NTTP, substitute into the type again. If the
|
||
type is still dependent, don't unify the NTTP.
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add
|
||
$(CODYLIB) after $(BACKEND).
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98469
|
||
* constexpr.c (cxx_eval_constant_expression) <case BIT_CAST_EXPR>:
|
||
Punt if lval is true.
|
||
* semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on
|
||
the result if it has a class type.
|
||
|
||
2021-01-05 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/82099
|
||
* pt.c (resolve_overloaded_unification): Call
|
||
maybe_instantiate_noexcept after instantiating the function
|
||
decl.
|
||
|
||
2021-01-05 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* parser.c (cp_parser_module_declaration): Alter diagnostic
|
||
text to say where is permissable.
|
||
|
||
2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR c++/98316
|
||
* Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).
|
||
|
||
2021-01-02 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cp-tree.h (cp_tree_c_finish_parsing): Declare.
|
||
* decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing.
|
||
* tree.c (cp_tree_c_finish_parsing): New function.
|
||
|
||
2021-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* ChangeLog-2020: Rotate ChangeLog. New file.
|
||
|
||
|
||
Copyright (C) 2021 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.
|