diff options
author | Patrick Palka <ppalka@redhat.com> | 2022-11-15 09:31:54 -0500 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2022-11-15 09:31:54 -0500 |
commit | c52c322627dd0f206b4bf7f7c94ab42bf5e61b6f (patch) | |
tree | d14f832563460b440ada6a3ed0b9da5001e33755 /gcc/cp/cp-lang.cc | |
parent | c68c468e0ebb6922816367a06e4ab02bad08eb08 (diff) | |
download | gcc-c52c322627dd0f206b4bf7f7c94ab42bf5e61b6f.zip gcc-c52c322627dd0f206b4bf7f7c94ab42bf5e61b6f.tar.gz gcc-c52c322627dd0f206b4bf7f7c94ab42bf5e61b6f.tar.bz2 |
c++: remove function_p parm from tsubst_copy_and_build
The function_p parameter of tsubst_copy_and_build (added in r69316) is
inspected only in its IDENTIFIER_NODE case, where it controls whether we
diagnose unqualified name lookup failure for the given identifier. But
I think ever since r173965, we never substitute an IDENTIFIER_NODE with
function_p=true for which the lookup can possibly fail, and therefore
the flag is effectively unneeded.
Before that commit, we would incorrectly repeat unqualified lookup for
an ADL-enabled CALL_EXPR at instantiation time, which naturally could
fail and thus motivated the flag. Afterwards, we no longer substitute
an IDENTIFIER_NODE callee when koenig_p is true, so the flag isn't needed
for its original purpose. What about when koenig_p=false? Apparently
we still may have an IDENTIFIER_NODE callee in this case, namely when
unqualified name lookup found a dependent local function declaration,
but repeating that lookup can't fail (ditto for USING_DECL callees).
So this patch removes this effectively unneeded parameter from
tsubst_copy_and_build. It also updates an outdated comment in the
CALL_EXPR case about when we may see an IDENTIFIER_NODE callee with
koenig_p=false.
gcc/cp/ChangeLog:
* cp-lang.cc (objcp_tsubst_copy_and_build): Remove
function_p parameter.
* cp-objcp-common.h (objcp_tsubst_copy_and_build):
Likewise.
* cp-tree.h (tsubst_copy_and_build): Likewise.
* init.cc (get_nsdmi): Adjust calls to tsubst_copy_and_build.
* pt.cc (expand_integer_pack): Likewise.
(instantiate_non_dependent_expr_internal): Likewise.
(tsubst_function_decl): Likewise.
(tsubst_arg_types): Likewise.
(tsubst_exception_specification): Likewise.
(tsubst): Likewise.
(tsubst_copy_asm_operands): Likewise.
(tsubst_expr): Likewise.
(tsubst_non_call_postfix_expression): Likewise.
(tsubst_lambda_expr): Likewise.
(tsubst_copy_and_build_call_args): Likewise.
(tsubst_copy_and_build): Remove function_p parameter
and adjust function comment. Adjust recursive calls.
<case CALL_EXPR>: Update outdated comment about when
we can see an IDENTIFIER_NODE callee with koenig_p=false.
(maybe_instantiate_noexcept): Adjust calls to
tsubst_copy_and_build.
gcc/objcp/ChangeLog:
* objcp-lang.cc (objcp_tsubst_copy_and_build): Remove
function_p parameter.
Diffstat (limited to 'gcc/cp/cp-lang.cc')
-rw-r--r-- | gcc/cp/cp-lang.cc | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/cp/cp-lang.cc b/gcc/cp/cp-lang.cc index c3cfde5..a3f29ed 100644 --- a/gcc/cp/cp-lang.cc +++ b/gcc/cp/cp-lang.cc @@ -116,8 +116,7 @@ tree objcp_tsubst_copy_and_build (tree /*t*/, tree /*args*/, tsubst_flags_t /*complain*/, - tree /*in_decl*/, - bool /*function_p*/) + tree /*in_decl*/) { return NULL_TREE; } |