https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102222
Bug ID: 102222 Summary: ICE on s390 (internal compiler error: in extract_insn, at recog.c:2770) Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: sam at gentoo dot org Target Milestone: --- Originally reported downstream at https://bugs.gentoo.org/811867. This is my first time filing an ICE bug so let me know if I've messed something up. The issue was originally observed on a native s390 machine (s390-ibm-linux-gnu) but I ended up minimising the ICE using cvise via cross. I hit the issue when building squashfs-tools-4.5. It does not occur with -march=native. I've managed to minimise the crasher to: ``` $ cat unsquash-1.i struct squashfs_reg_inode_header_1 read_inode_inode; read_inode_val; struct squashfs_reg_inode_header_1 { int file_size : 32 } __attribute__((packed)) read_inode() { read_inode_inode.file_size = read_inode_val; } ``` It can be induced via: ``` $ s390-ibm-linux-gnu-gcc -O2 -pipe -march=z10 unsquash-1.i unsquash-1.i:2:1: warning: data definition has no type or storage class 2 | read_inode_val; | ^~~~~~~~~~~~~~ unsquash-1.i:2:1: warning: type defaults to ‘int’ in declaration of ‘read_inode_val’ [-Wimplicit-int] unsquash-1.i:5:1: warning: no semicolon at end of struct or union 5 | } __attribute__((packed)) read_inode() { | ^ unsquash-1.i: In function ‘read_inode’: unsquash-1.i:7:1: error: unrecognizable insn: 7 | } | ^ (insn 9 8 10 2 (set (strict_low_part (reg:SI 66)) (mem/c:SI (plus:SI (reg/f:SI 64) (const_int 4 [0x4])) [1 read_inode_val+0 S4 A32])) "unsquash-1.i":6:30 -1 (nil)) during RTL pass: vregs unsquash-1.i:7:1: internal compiler error: in extract_insn, at recog.c:2770 0x7fa3a9bb680c __libc_start_main ../csu/libc-start.c:332 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://bugs.gentoo.org/> for instructions. ``` ``` $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/s390-ibm-linux-gnu/11.2.0/lto-wrapper Target: s390-ibm-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-11.2.0/work/gcc-11.2.0/configure --host=s390-ibm-linux-gnu --build=s390-ibm-linux-gnu --prefix=/usr --bindir=/usr/s390-ibm-linux-gnu/gcc-bin/11.2.0 --includedir=/usr/lib/gcc/s390-ibm-linux-gnu/11.2.0/include --datadir=/usr/share/gcc-data/s390-ibm-linux-gnu/11.2.0 --mandir=/usr/share/gcc-data/s390-ibm-linux-gnu/11.2.0/man --infodir=/usr/share/gcc-data/s390-ibm-linux-gnu/11.2.0/info --with-gxx-include-dir=/usr/lib/gcc/s390-ibm-linux-gnu/11.2.0/include/g++-v11 --with-python-dir=/share/gcc-data/s390-ibm-linux-gnu/11.2.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 11.2.0 p1' --disable-esp --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-fixed-point --enable-libgomp --disable-libssp --disable-libada --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --without-zstd --enable-lto --without-isl --disable-libsanitizer --disable-default-pie --enable-default-ssp Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.2.0 (Gentoo 11.2.0 p1) ```