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-objcp-common.h | |
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-objcp-common.h')
-rw-r--r-- | gcc/cp/cp-objcp-common.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/cp/cp-objcp-common.h b/gcc/cp/cp-objcp-common.h index 1a67f14..f4ba0c9 100644 --- a/gcc/cp/cp-objcp-common.h +++ b/gcc/cp/cp-objcp-common.h @@ -24,8 +24,7 @@ along with GCC; see the file COPYING3. If not see /* In cp/objcp-common.c, cp/cp-lang.cc and objcp/objcp-lang.cc. */ extern tree cp_get_debug_type (const_tree); -extern tree objcp_tsubst_copy_and_build (tree, tree, tsubst_flags_t, - tree, bool); +extern tree objcp_tsubst_copy_and_build (tree, tree, tsubst_flags_t, tree); extern int cp_decl_dwarf_attribute (const_tree, int); extern int cp_type_dwarf_attribute (const_tree, int); |