[Bug c++/90756] New: [8/9 Regressions] g++ ICE in convert_move, at expr.c:218 on i686 and s390x
doko at debian dot org
gcc-bugzilla@gcc.gnu.org
Wed Jun 5 12:59:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90756
Bug ID: 90756
Summary: [8/9 Regressions] g++ ICE in convert_move, at
expr.c:218 on i686 and s390x
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: doko at debian dot org
Target Milestone: ---
[forwarded from https://bugs.debian.org/930012]
this might be the same as PR90327, but here it is seen on the gcc-8 branch as
well, both i686 and s390x. seen building firefox 68.0~b6-2 on i686 and s390x.
$ g++ -c -O1 -fPIC -Wall -Wno-narrowing -Wno-psabi skcms.ii
during RTL pass: expand
skcms.ii: In function 'void ck()':
skcms.ii:65:6: internal compiler error: in convert_move, at expr.c:218
void ck() {
^~
Please submit a full bug report,
with preprocessed source if appropriate.
$ cat skcms.ii
typedef enum {
a,
c,
d,
e,
f,
g,
h,
i,
j,
k,
l,
ah,
ai,
aj,
ak,
al,
am,
an,
ao,
ap,
aq,
ar,
as,
at,
au,
av,
aw,
ax,
ay,
az,
ba,
bb,
bc,
bd,
be,
bf,
bg,
bh,
bj,
bk,
bl,
bm,
bn,
bo,
m,
bp,
bq,
br,
bs
} bt;
template <int bi, typename bu> struct p {
typedef bu __attribute__((vector_size(bi * sizeof(bu)))) bw;
};
template <int bi, typename bu> using bx = typename p<bi, bu>::bw;
using by = bx<4, float>;
using bz = bx<4, unsigned long long>;
using ca = bx<4, short>;
by cb;
template <typename bu, typename cc> void cd(cc, bu);
template <typename ce, typename cf> ce cast(cf);
ca cg(by);
template <typename bu, typename cc> bu ch(cc);
bt ci;
void ck() {
by n = cb, b = cb;
while (true)
switch (ci) {
case a:
case c:
case e:
case f:
case g:
case h:
case d:
case i:
case j:
case k:
case l:
case ah:
case ai:
case aj:
case ak:
case al:
n = ch<by>(c);
case am: {
by o = n;
n = b;
b = o;
}
case an:
case ao:
case ap:
case aq:
case ar:
case as:
case at:
case au:
case av:
case aw:
case ax:
case ay:
case az:
case ba:
case bb:
case bc:
case bd:
case be:
case bf:
case bg:
case bh:
case bj:
case bk:
case bl:
case bm:
case bn:
case bo:
case m:
case bp:
case bq: {
ca cm = cg(b);
__attribute__((__vector_size__(
4 * sizeof(long long)))) unsigned long long cn = cast<bz>(cm);
cd(ck, cn);
}
case br:
case bs:;
}
}
More information about the Gcc-bugs
mailing list