https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116236
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- struct duration { duration(int); }; struct month { operator unsigned(); } _M_m; struct year { short _M_y; operator int() { return _M_y; } } _M_y; void _M_days_since_epoch() { auto __y1(_M_y); auto __m1(_M_m); auto __j(__m1 < 3); auto __y0 = __y1 - __j; duration{__y0}; } > ./cc1plus -quiet tzdb.ii -O -std=gnu++20 -fPIC -I include tzdb.ii: In function ‘void _M_days_since_epoch()’: tzdb.ii:17:1: error: insn does not satisfy its constraints: 17 | } | ^ (insn 20 19 21 2 (set (mem:SI (pre_dec:SI (reg/f:SI 15 %sp)) [6 S4 A16]) (plus:SI (sign_extend:SI (reg:HI 10 %a2 [orig:36 __y1$_M_y ] [36])) (reg:SI 0 %d0 [41]))) "tzdb.ii":16:16 77 {pushasi} (expr_list:REG_ARGS_SIZE (const_int 4 [0x4]) (nil))) during RTL pass: reload tzdb.ii:17:1: internal compiler error: in extract_constrain_insn, at recog.cc:2770 0x1ee582e internal_error(char const*, ...) /space/rguenther/src/gcc11queue/gcc/diagnostic-global-context.cc:491 0x6abcd5 fancy_abort(char const*, int, char const*) /space/rguenther/src/gcc11queue/gcc/diagnostic.cc:1755 0x698c2e _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /space/rguenther/src/gcc11queue/gcc/rtl-error.cc:108