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>>

Reply via email to