https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113492
--- Comment #10 from uecker at gcc dot gnu.org --- Removing the assertion is enough to fix it. But the cause is strange. We somehow get two unsigned types in DECL_BIT_FIELD_TYPE which should be the same but are not, e.g: <integer_type 0x7f6dad774738 public unsigned SI size <integer_cst 0x7f6dad624198 type <integer_type 0x7f6dad6220a8 bitsizetype> constant 32> unit-size <integer_cst 0x7f6dad6241b0 type <integer_type 0x7f6dad622000 sizetype> constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7f6dad774738 precision:32 min <integer_cst 0x7f6dad77ebe8 0> max <integer_cst 0x7f6dad769270 4294967295>> <integer_type 0x7f6dad622690 unsigned int public unsigned SI size <integer_cst 0x7f6dad624198 type <integer_type 0x7f6dad6220a8 bitsizetype> constant 32> unit-size <integer_cst 0x7f6dad6241b0 type <integer_type 0x7f6dad622000 sizetype> constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7f6dad622690 precision:32 min <integer_cst 0x7f6dad6241c8 0> max <integer_cst 0x7f6dad624180 4294967295> pointer_to_this <pointer_type 0x7f6dad632690>>