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

Reply via email to