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