This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/58311] New: [4.9 Regression] ICE: SIGSEGV in hash_table::find_slot_with_hash() with -fdevirtualize
- From: "zsojka at seznam dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 03 Sep 2013 19:38:20 +0000
- Subject: [Bug tree-optimization/58311] New: [4.9 Regression] ICE: SIGSEGV in hash_table::find_slot_with_hash() with -fdevirtualize
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58311
Bug ID: 58311
Summary: [4.9 Regression] ICE: SIGSEGV in
hash_table::find_slot_with_hash() with -fdevirtualize
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: zsojka at seznam dot cz
Created attachment 30745
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30745&action=edit
reduced testcase
Compiler output:
$ gcc -fdevirtualize testcase.C
testcase.C:14:1: internal compiler error: Segmentation fault
}
^
0xc1423f crash_signal
/mnt/svn/gcc-trunk/gcc/toplev.c:335
0xa47b91 hash_table<odr_hasher, xcallocator>::find_slot_with_hash(tree_node
const*, unsigned int, insert_option)
/mnt/svn/gcc-trunk/gcc/hash-table.h:774
0xa463ad get_odr_type(tree_node*, bool)
/mnt/svn/gcc-trunk/gcc/ipa-devirt.c:251
0xa46cb4 possible_polymorphic_call_targets(tree_node*, long, bool*, void**)
/mnt/svn/gcc-trunk/gcc/ipa-devirt.c:596
0xa47263 possible_polymorphic_call_targets
/mnt/svn/gcc-trunk/gcc/ipa-utils.h:87
0xa47263 ipa_devirt
/mnt/svn/gcc-trunk/gcc/ipa-devirt.c:790
0xa47263 execute
/mnt/svn/gcc-trunk/gcc/ipa-devirt.c:985
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
==7675== Invalid read of size 8
==7675== at 0xA47B91: hash_table<odr_hasher,
xcallocator>::find_slot_with_hash(tree_node const*, unsigned int,
insert_option) (hash-table.h:774)
==7675== by 0xA463AD: get_odr_type(tree_node*, bool) (ipa-devirt.c:251)
==7675== by 0xA46CB4: possible_polymorphic_call_targets(tree_node*, long,
bool*, void**) (ipa-devirt.c:596)
==7675== by 0xA47263: (anonymous namespace)::pass_ipa_devirt::execute()
(ipa-utils.h:87)
==7675== by 0xB22AA9: execute_one_pass(opt_pass*) (passes.c:2201)
==7675== by 0xB2327A: execute_ipa_pass_list(opt_pass*) (passes.c:2565)
==7675== by 0x88F575: compile() (cgraphunit.c:1965)
==7675== by 0x88FD09: finalize_compilation_unit() (cgraphunit.c:2209)
==7675== by 0x693630: cp_write_global_declarations() (decl2.c:4364)
==7675== by 0xC142AC: compile_file() (toplev.c:560)
==7675== by 0xC160C9: toplev_main(int, char**) (toplev.c:1878)
==7675== by 0x5A3C60C: (below main) (in /lib64/libc-2.15.so)
==7675== Address 0x8 is not stack'd, malloc'd or (recently) free'd
==7675==
testcase.C:14:1: internal compiler error: Segmentation fault
$ gcc -v
Using built-in specs.
COLLECT_GCC=/mnt/svn/gcc-trunk/binary-latest/bin/gcc
COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-202196-lto-fortran-checking-yes-rtl-df/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /mnt/svn/gcc-trunk//configure --enable-checking=yes,rtl,df
--enable-languages=c,c++,lto,fortran
--prefix=/mnt/svn/gcc-trunk/binary-202196-lto-fortran-checking-yes-rtl-df/
--without-cloog --without-ppl
Thread model: posix
gcc version 4.9.0 20130903 (experimental) (GCC)