https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64668

--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #4)
>     /* Virtual table call.  */
>     case OBJ_TYPE_REF:
>       {
>         x1 = TREE_OPERAND (t1, 0);
>         x2 = TREE_OPERAND (t2, 0);
>         y1 = TREE_OPERAND (t1, 1);
>         y2 = TREE_OPERAND (t2, 1);
>         z1 = TREE_OPERAND (t1, 2);
>         z2 = TREE_OPERAND (t2, 2);
> 
>         ret = compare_ssa_name (x1, x2)
>               && compare_ssa_name (y1, y2)
>               && compare_cst_or_decl (z1, z2);
> 
> I think neither op0 nor op1 needs to be a SSA name, both might be &x for
> example.

Yes, I did a wrong assumption about second argument of OBJ_TYPE_REF, which is
in this case an ADDR_EXPR:

133      gcc_assert (TREE_CODE (t1) == SSA_NAME);
(gdb) call debug_tree(t1)
 <addr_expr 0x7ffff6384ce0
    type <pointer_type 0x7ffff6310888
        type <record_type 0x7ffff6d5a348 _objc_super sizes-gimplified type_0 TI
            size <integer_cst 0x7ffff6c36d08 constant 128>
            unit size <integer_cst 0x7ffff6c36d20 constant 16>
            align 64 symtab 0 alias set 6 canonical type 0x7ffff6d5a348 fields
<field_decl 0x7ffff6d58da8 self> context <block 0x7ffff62fe840>
            pointer_to_this <pointer_type 0x7ffff6310888> chain <type_decl
0x7ffff6d58d10 D.1842>>
        public unsigned DI
        size <integer_cst 0x7ffff6c36cc0 constant 64>
        unit size <integer_cst 0x7ffff6c36cd8 constant 8>
        align 64 symtab 0 alias set 5 canonical type 0x7ffff6310888>

    arg 0 <var_decl 0x7ffff6326090 objc_super type <record_type 0x7ffff6d5a348
_objc_super>
        addressable used TI file GormScrollViewAttributesInspector.m line 110
col 3 size <integer_cst 0x7ffff6c36d08 128> unit size <integer_cst
0x7ffff6c36d20 16>
        align 128 context <function_decl 0x7ffff62db798
_i_GormScrollViewAttributesInspector__horizontalRuler_>>
    GormScrollViewAttributesInspector.m:110:3>

I'm going to write a patch.

Martin

Reply via email to