https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82778
Bug ID: 82778 Summary: crash: insn does not satisfy its constraints Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: babokin at gmail dot com Target Milestone: --- gcc trunk rev254211, x86_64. > cat f.cpp template <typename a, int b> struct c { typedef a d[b]; static a e(d f, int g) { return f[g]; } }; template <typename a, int b> struct B { typedef c<a, b> h; typename h::d i; long j; a at() { return h::e(i, j); } }; int k, m, r, s, t; char l, n, q; short o, p, w; struct C { int u; }; B<C, 4> v; void x() { if (((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) s = ((-(((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) < 0) / (-(((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) ^ -25 & o) && p) >> (0 <= 0 ? 0 || (-(((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) < 0) / (-(((p > (q ? v.at().u : k)) >> l - 226) + !(n ^ r * m)) ^ -25 & o) : 0); w = (p > (q ? v.at().u : k)) >> l - 226; t = !(n ^ r * m); } > gcc -O2 -c f.cpp f.cpp: In function ‘void x()’: f.cpp:34:1: error: insn does not satisfy its constraints: } ^ (insn 77 75 37 4 (parallel [ (set (reg:CCZ 17 flags) (compare:CCZ (plus:SI (reg:SI 0 ax [orig:95 _9 ] [95]) (reg:SI 1 dx [orig:102 _16 ] [102])) (const_int 0 [0]))) (set (reg:SI 2 cx [orig:103 _17 ] [103]) (plus:SI (reg:SI 0 ax [orig:95 _9 ] [95]) (reg:SI 1 dx [orig:102 _16 ] [102]))) ]) "f.cpp":19 225 {*addsi_2} (expr_list:REG_UNUSED (reg:SI 2 cx [orig:103 _17 ] [103]) (nil))) during RTL pass: cprop_hardreg f.cpp:34:1: internal compiler error: in extract_constrain_insn, at recog.c:2207 0x61c877 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:108 0x61c89d _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:118 0xdf60bd extract_constrain_insn(rtx_insn*) ../../gcc/gcc/recog.c:2207 0xdff55f copyprop_hardreg_forward_1 ../../gcc/gcc/regcprop.c:790 0xe001df execute ../../gcc/gcc/regcprop.c:1296 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.