https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85437
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org Target Milestone|--- |8.0 --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (gdb) p debug_tree (type) <offset_type 0x7fffefd9d150 type <integer_type 0x7fffefc625e8 int public type_6 SI size <integer_cst 0x7fffefc650c0 constant 32> unit-size <integer_cst 0x7fffefc650d8 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffefc625e8 precision:32 min <integer_cst 0x7fffefc65078 -2147483648> max <integer_cst 0x7fffefc65090 2147483647> pointer_to_this <pointer_type 0x7fffefc6aa80>> DI size <integer_cst 0x7fffefc45e70 type <integer_type 0x7fffefc620a8 bitsizetype> constant 64> unit-size <integer_cst 0x7fffefc45e88 type <integer_type 0x7fffefc62000 sizetype> constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffefd9d150 basetype <record_type 0x7fffefd88150 A>> $4 = void (gdb) p debug_tree (op->typed.type) <offset_type 0x7fffefd9d3f0 type <integer_type 0x7fffefc625e8 int public type_6 SI size <integer_cst 0x7fffefc650c0 constant 32> unit-size <integer_cst 0x7fffefc650d8 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffefc625e8 precision:32 min <integer_cst 0x7fffefc65078 -2147483648> max <integer_cst 0x7fffefc65090 2147483647> pointer_to_this <pointer_type 0x7fffefc6aa80>> DI size <integer_cst 0x7fffefc45e70 type <integer_type 0x7fffefc620a8 bitsizetype> constant 64> unit-size <integer_cst 0x7fffefc45e88 type <integer_type 0x7fffefc62000 sizetype> constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fffefd9d3f0 basetype <record_type 0x7fffefd889d8 B>> Ah, one has basetype A, the other B, and both: 4600 if (same_type_ignoring_top_level_qualifiers_p (type, 4601 TREE_TYPE (op)) 4602 || can_convert_qual (type, op)) tests fail in this case.