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

Reply via email to