[Bug tree-optimization/97765] New: ICE at -Os: in clear_slot, at hash-table.h:891
zhendong.su at inf dot ethz.ch
gcc-bugzilla@gcc.gnu.org
Mon Nov 9 11:45:35 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97765
Bug ID: 97765
Summary: ICE at -Os: in clear_slot, at hash-table.h:891
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: zhendong.su at inf dot ethz.ch
Target Milestone: ---
The test is hard to reduce and is still quite hairy.
[534] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--prefix=/local/suz-local/software/local/gcc-trunk --enable-languages=c,c++
--disable-werror --enable-multilib --with-system-zlib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.0.0 20201109 (experimental) [master revision
946b73c1132:a700e491347:dc7e8839c92c4bc3c3741cf27b0af81edb803fe7] (GCC)
[535] %
[535] %
[535] % gcctk -O1 -c -w small.c
[536] %
[536] % gcctk -Os -c -w small.c
during GIMPLE pass: pre
small.c: In function ‘ae’:
small.c:69:6: internal compiler error: in clear_slot, at hash-table.h:891
69 | void ae() {
| ^~
0xed6b05 hash_table<expr_pred_trans_d, false,
xcallocator>::clear_slot(expr_pred_trans_d*)
../../gcc-trunk/gcc/hash-table.h:890
0xed6b05 phi_translate
../../gcc-trunk/gcc/tree-ssa-pre.c:1745
0xed6b6c phi_translate_set
../../gcc-trunk/gcc/tree-ssa-pre.c:1773
0xed6fea compute_antic_aux
../../gcc-trunk/gcc/tree-ssa-pre.c:2112
0xed6fea compute_antic
../../gcc-trunk/gcc/tree-ssa-pre.c:2458
0xedaf3a execute
../../gcc-trunk/gcc/tree-ssa-pre.c:4295
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.
[537] %
[537] % cat small.c
static short a, c;
char b, d;
static char e;
int f, h;
long g;
short *i;
unsigned j;
extern void ad ();
static unsigned aa() {
int l, m = l & e, n;
char o, p, r = j;
long q;
short s;
if (!d)
goto L2;
q = s = h;
L1:
b = -(e >> (h / ~0 & m + g) & ~s);
char v = ~(f % c);
unsigned short w = b | j < h | c;
char x = -c & b | h % l ^ e + g;
int y = ~(x | b > ((l | j) & g & h % f) ^ e);
unsigned long z = -(j & (l & a)) | ~f | ~(y % b) ^ g & (h ^ ~0) ^ v;
unsigned char k = ~(j | v + d | (b | ~(y % h)) + (-(x % g & ~c) ^ e ^ a) &
z);
short t = ~f & l ^ (g ^ -z & ~b & d >> ~0) + (v | h) & j ^ k ^ e & c ^ y;
int u = ~(~x & (f | h ^ -j & y >> e >> g % (l + c + b)));
int ab =
~(~(l ^ f ^ v & x) % (-k | z & y | b + a) % ((g & h) + u + -e) - (d & w)
&
j);
if (b && j) {
w = a;
e = -((-(w ^ -k & l) ^ x ^ ~g + h & y | (a ^ ab) + f) + (-e | v + j) & ~t);
a = -((a ^ y ^ (a ^ ~h ^ j % e ^ w + l) ^ g + t + ~(x ^ v)) %
(c ^ (b ^ ~0) | d));
d = -(-(k | j & ~(h << d)) << ~(e | v | (l | g ^ y) % -c ^ j) | ab);
f = l % d + ~a | x % h | -f ^ y & b ^ w | -v - j + (c | b < 0);
b = ~(~(a + ~e + ~v & b) %
~((b & g | j % w) + (-~j ^ h + d & -y % h ^ f & c + d)));
c = -((j ^ a + f ^ g + ~(h ^ x) % ~d | h & c) % d | e & b + j ^ (k | ~l));
h = -(b | a + (~t | d & (~(j > h) ^ v | j ^ f | x) % ~k) ^ h + c % l |
y & ~(-g % -d));
l = ~(~(g | e) % a ^ ~(-l & j) % ~b & c % d % ab & (~k ^ h & f) + (b + j));
if (a)
goto L1;
goto L3;
}
L2:
c = -(a && o & (b & d)) & ~(e && q) > ~g ^ p;
if (j || ab)
ad();
if (!(e || h || ab && c && (l = n) && n - 1 && s)) {
ad();
goto L1;
}
if (n || a >= d) {
ad((long)e);
goto L1;
}
p = h && r;
if (p)
o = ~(j | (d && c | e) | o);
*i += 1;
goto L1;
L3:;
}
void ae() {
aa();
for (;;)
;
}
More information about the Gcc-bugs
mailing list