[Bug rtl-optimization/88317] New: ICE: Segmentation fault (in split_reg -> bitmap_set_bit -> bitmap_list_link_element)
asolokha at gmx dot com
gcc-bugzilla@gcc.gnu.org
Mon Dec 3 16:10:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88317
Bug ID: 88317
Summary: ICE: Segmentation fault (in split_reg ->
bitmap_set_bit -> bitmap_list_link_element)
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: ice-on-invalid-code, ra
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Target: x86_64-unknown-linux-gnu
Created attachment 45143
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45143&action=edit
The testcase
gcc-9.0.0-alpha20181202 snapshot (r266729) ICEs when compiling the attached
testcase w/ -O1 -fschedule-insns -fselective-scheduling -ftrapv
-funroll-all-loops -fno-tree-ccp -fno-tree-dce -fno-tree-dominator-opts
-fno-tree-fre -fno-tree-sra:
% x86_64-unknown-linux-gnu-gcc-9.0.0-alpha20181202 -O1 -fschedule-insns
-fselective-scheduling -ftrapv -funroll-all-loops -fno-tree-ccp -fno-tree-dce
-fno-tree-dominator-opts -fno-tree-fre -fno-tree-sra -w -c ovoyxfol.c -v
Using built-in specs.
COLLECT_GCC=x86_64-unknown-linux-gnu-gcc-9.0.0-alpha20181202
Target: x86_64-unknown-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/configure
--host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/usr
--bindir=/usr/x86_64-unknown-linux-gnu/gcc-bin/9.0.0-alpha20181202
--includedir=/usr/lib/gcc/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/include
--datadir=/usr/share/gcc-data/x86_64-unknown-linux-gnu/9.0.0-alpha20181202
--mandir=/usr/share/gcc-data/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/man
--infodir=/usr/share/gcc-data/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/include/g++-v9
--with-python-dir=/share/gcc-data/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/python
--enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-werror
--with-system-zlib --disable-nls --enable-checking=yes --disable-esp
--enable-libstdcxx-time --disable-libstdcxx-pch --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--disable-multilib --with-multilib-list=m64 --disable-altivec
--disable-fixed-point --enable-targets=all --enable-libgomp
--disable-libmudflap --disable-libssp --disable-libmpx --disable-systemtap
--disable-vtable-verify --disable-libvtv --disable-libquadmath --enable-lto
--with-isl --disable-isl-version-check --disable-libsanitizer
--enable-default-pie --enable-default-ssp
Thread model: posix
gcc version 9.0.0-alpha20181202 20181202 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-O1' '-fschedule-insns' '-fselective-scheduling' '-ftrapv'
'-funroll-all-loops' '-fno-tree-ccp' '-fno-tree-dce' '-fno-tree-dominator-opts'
'-fno-tree-fre' '-fno-tree-sra' '-w' '-c' '-v' '-mtune=generic' '-march=x86-64'
/usr/libexec/gcc/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/cc1 -quiet -v
ovoyxfol.c -quiet -dumpbase ovoyxfol.c -mtune=generic -march=x86-64 -auxbase
ovoyxfol -O1 -w -version -fschedule-insns -fselective-scheduling -ftrapv
-funroll-all-loops -fno-tree-ccp -fno-tree-dce -fno-tree-dominator-opts
-fno-tree-fre -fno-tree-sra -o /tmp/ccZdGkhr.s
GNU C17 (GCC) version 9.0.0-alpha20181202 20181202 (experimental)
(x86_64-unknown-linux-gnu)
compiled by GNU C version 9.0.0-alpha20181202 20181202 (experimental),
GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version
isl-0.20-GMP
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/include
/usr/lib/gcc/x86_64-unknown-linux-gnu/9.0.0-alpha20181202/include-fixed
/usr/include
End of search list.
GNU C17 (GCC) version 9.0.0-alpha20181202 20181202 (experimental)
(x86_64-unknown-linux-gnu)
compiled by GNU C version 9.0.0-alpha20181202 20181202 (experimental),
GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version
isl-0.20-GMP
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: a92a885da50bf198a0c1fc913bab14ec
during RTL pass: reload
ovoyxfol.c: In function 'vb':
ovoyxfol.c:661:1: internal compiler error: Segmentation fault
661 | }
| ^
0xd0821f crash_signal
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/toplev.c:326
0x88ea20 bitmap_list_link_element
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/bitmap.c:212
0x88ea20 bitmap_set_bit(bitmap_head*, int)
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/bitmap.c:948
0xb8d824 split_reg
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/lra-constraints.c:5656
0xb9768f spill_hard_reg_in_range(int, reg_class, rtx_insn*, rtx_insn*)
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/lra-constraints.c:5764
0xb89c9f lra_split_hard_reg_for()
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/lra-assigns.c:1765
0xb84405 lra(_IO_FILE*)
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/lra.c:2533
0xb3b929 do_reload
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/ira.c:5469
0xb3b929 execute
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181202/work/gcc-9-20181202/gcc/ira.c:5653
==17984== Invalid read of size 4
==17984== at 0x88EA20: bitmap_list_link_element (bitmap.c:212)
==17984== by 0x88EA20: bitmap_set_bit(bitmap_head*, int) (bitmap.c:948)
==17984== by 0xB8D824: split_reg(bool, int, rtx_insn*, rtx_def*, rtx_insn*)
(lra-constraints.c:5656)
==17984== by 0xB9768F: spill_hard_reg_in_range(int, reg_class, rtx_insn*,
rtx_insn*) (lra-constraints.c:5764)
==17984== by 0xB89C9F: lra_split_hard_reg_for() (lra-assigns.c:1765)
==17984== by 0xB84405: lra(_IO_FILE*) (lra.c:2533)
==17984== by 0xB3B929: do_reload (ira.c:5469)
==17984== by 0xB3B929: (anonymous
namespace)::pass_reload::execute(function*) (ira.c:5653)
==17984== by 0xC27FC9: execute_one_pass(opt_pass*) (passes.c:2483)
==17984== by 0xC286FF: execute_pass_list_1(opt_pass*) (passes.c:2569)
==17984== by 0xC28711: execute_pass_list_1(opt_pass*) (passes.c:2570)
==17984== by 0xC28738: execute_pass_list(function*, opt_pass*)
(passes.c:2580)
==17984== by 0x90A2AF: cgraph_node::expand() (cgraphunit.c:2196)
==17984== by 0x90B2A3: expand_all_functions (cgraphunit.c:2334)
==17984== by 0x90B2A3: symbol_table::compile() [clone .part.0]
(cgraphunit.c:2685)
==17984== Address 0x8000000010 is not stack'd, malloc'd or (recently) free'd
I've been chasing this group of failures down for about a year. The attached
testcase is unsuitable for the testsuite, yet it's the smallest one I could
come up with so far. The failure manifests itself in half dozen different ICEs
and RA hangs which can be encountered by making some random changes in the
testcase.
More information about the Gcc-bugs
mailing list