https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124617
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2026-03-24
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
can_extract_member_or_function_p is called with
static constexpr R binary_vtable_impl<R, F, V0, V1>::visit(F&&, const V0&,
const V1&) [with int I = 0; int J = 0; F = R; V0 = F; V1 = V0]
i.e. partially instantiated template,
which has
<function_type 0x7fffe62db498
type <template_type_parm 0x7fffe62daa80 R type_0 type_6 VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffe983bbd0
tpi <template_parm_index 0x7fffe62cfc60 type <template_type_parm
0x7fffe62daa80 R>
decl <type_decl 0x7fffe62d8960 R>
index 0 level 1 orig_level 1>
chain <type_decl 0x7fffe62d8960 R>>
type_0 type_2 type_6 QI
size <integer_cst 0x7fffe981b3a8 type <integer_type 0x7fffe98230a8
bitsizetype> constant 8>
unit-size <integer_cst 0x7fffe981b3c0 type <integer_type 0x7fffe9823000
sizetype> constant 1>
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffe62db3f0
arg-types <tree_list 0x7fffe62d9e60
value <reference_type 0x7fffe62db000 type <template_type_parm
0x7fffe62dab28 F>
private unsigned type_0 type_6 DI
size <integer_cst 0x7fffe981b2b8 constant 64>
unit-size <integer_cst 0x7fffe981b2d0 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffe83f4738>
chain <tree_list 0x7fffe62d9e88 value <reference_type 0x7fffe62db150>
chain <tree_list 0x7fffe62d9eb0 value <reference_type
0x7fffe62db2a0>
chain <tree_list 0x7fffe9816cd0 value <void_type 0x7fffe9823f18
void>>>>>>
type rather than the expected
<function_type 0x7fffe62eb7e0
type <integer_type 0x7fffe98235e8 int public type_6 SI
size <integer_cst 0x7fffe981b4f8 constant 32>
unit-size <integer_cst 0x7fffe981b510 constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffe98235e8 precision:32 min <integer_cst 0x7fffe981b4b0 -2147483648> max
<integer_cst 0x7fffe981b4c8 2147483647>
pointer_to_this <pointer_type 0x7fffe982ab28> reference_to_this
<reference_type 0x7fffe7007000>>
type_2 type_6 QI
size <integer_cst 0x7fffe981b3a8 type <integer_type 0x7fffe98230a8
bitsizetype> constant 8>
unit-size <integer_cst 0x7fffe981b3c0 type <integer_type 0x7fffe9823000
sizetype> constant 1>
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffe62eb738
arg-types <tree_list 0x7fffe62e97d0
value <reference_type 0x7fffe62eb690 type <record_type 0x7fffe62e6d20
Plus>
private unsigned type_6 DI
size <integer_cst 0x7fffe981b2b8 constant 64>
unit-size <integer_cst 0x7fffe981b2d0 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffe62eb690>
chain <tree_list 0x7fffe62e97a8 value <reference_type 0x7fffe62e8540>
chain <tree_list 0x7fffe62e9780 value <reference_type
0x7fffe62e8540>
chain <tree_list 0x7fffe9816cd0 value <void_type 0x7fffe9823f18
void>>>>>
pointer_to_this <pointer_type 0x7fffe62eb888>>