https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86139
Bug ID: 86139 Summary: [7/8/9 Regression] ICE in in store_constructor, at expr.c:6849 on aarch64-linux-gnu and arm-linux-gnueabihf Product: gcc Version: 8.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: doko at debian dot org Target Milestone: --- [forwarded from https://bugs.debian.org/901290] seen when building a recent version of chromium-browser on aarch64-linux-gnu and arm-linux-gnueabihf. The reduced test case was made with a gcc-8 cross arm-linux-gnueabihf gcc. according to the bug reporter it fails on armhf in 6, 7 and 8, on arm64 on 7 and 8. $ cat preprocessed.i typedef int a; typedef int c; typedef char d; typedef unsigned short f; typedef long long g; typedef float __attribute__((vector_size(16))) aa; typedef c bv; typedef g __attribute__((vector_size(32))) bw; typedef f __attribute__((vector_size(8))) bx; bv h, i; aa *l; bx m, n, o; char q; f *s; f u; void *memcpy(void *v, void *w, a z) { return __builtin___memcpy_chk(v, w, z, 0); } typedef struct { } ac; typedef struct { } e; typedef struct { } agab(ac *); typedef enum { ao, ad, ab, ar, as, ae, af, ag, ak, ah, ai, aj, ba, al, am, an, be, ap, aq, av, aw, at, au, az, bm, ax, ay, bp, bq, bb, bc, bd, bi, bf, bg, bh, by, bj, bk, bl, ca, bn, bo, bt, bu, br } bs; void bz(bx); bx cc(); f cb(); bx cd(bv v) { d *j = 0; bx k = {cb(j, v)}; return k; } void ce() { __attribute__((__vector_size__(4 * sizeof(short)))) unsigned short p = n, k = p; m = k; o = cd(h); } bs t; void x() { aa r, b; while (1) switch (t) { case ao: case ad: case ab: case ar: case as: case ae: case af: case ag: case ak: { bw a; __builtin_memcpy(&a, s, 4); bx y = {(a & 5)[3]}; bz(y); } case ah: case ai: case aj: case ba: case al: case am: case an: case be: case ap: case aq: case av: case aw: case at: case au: case az: case bm: case ax: case ay: case bp: case bq: case bb: case bc: case bd: case bi: case bf: case bg: break; case bh: case by: { bx c = (bx){r[2]} | (bx){b[2]}; __builtin_memcpy(&q + i, &c, 2 * 4); } case bj: case bk: case bl: case ca: case bn: case bo: return; case bt: { bx y = cc(); bw d = u | (bw){y[2]}; __builtin_memcpy(s, &d, 4); } case bu: case br:; } } void cf() {} $ arm-linux-gnueabihf-gcc-8 -c -std=gnu11 -O0 -Wall -Wextra preprocessed.i during RTL pass: expand preprocessed.i: In function 'x': preprocessed.i:88:6: internal compiler error: in store_constructor, at expr.c:6849 void x() { ^ Please submit a full bug report, with preprocessed source if appropriate. gcc configured with -v --with-pkgversion='Debian 8.1.0-4' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- --includedir=/usr/arm-linux-gnueabihf/include