[Bug rtl-optimization/82778] New: crash: insn does not satisfy its constraints

babokin at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Oct 31 05:12:00 GMT 2017


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.


More information about the Gcc-bugs mailing list