This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ipa/63298] New: [5 Regression] internal compiler error: in types_same_for_odr, at ipa-devirt.c:449 with LTO
- From: "mliska at suse dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 18 Sep 2014 15:18:20 +0000
- Subject: [Bug ipa/63298] New: [5 Regression] internal compiler error: in types_same_for_odr, at ipa-devirt.c:449 with LTO
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63298
Bug ID: 63298
Summary: [5 Regression] internal compiler error: in
types_same_for_odr, at ipa-devirt.c:449 with LTO
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: mliska at suse dot cz
After fixed issued PR63270 with r215328, it looks there's a new ICE in Chrome
with LTO:
bt
lto1: internal compiler error: in types_same_for_odr, at ipa-devirt.c:449
0x6f9eba types_same_for_odr(tree_node const*, tree_node const*)
../../gcc/ipa-devirt.c:449
0x6fa0a2 odr_subtypes_equivalent_p
../../gcc/ipa-devirt.c:535
0x6fb5db odr_types_equivalent_p
../../gcc/ipa-devirt.c:1026
0x6fbd37 add_type_duplicate
../../gcc/ipa-devirt.c:1191
0x6fc143 get_odr_type(tree_node*, bool)
../../gcc/ipa-devirt.c:1339
0x6fc472 register_odr_type(tree_node*)
../../gcc/ipa-devirt.c:1407
0x56c15e lto_read_decls
../../gcc/lto/lto.c:1918
0x56d068 lto_file_finalize
../../gcc/lto/lto.c:2212
0x56d068 lto_create_files_from_ids
../../gcc/lto/lto.c:2222
0x56d068 lto_file_read
../../gcc/lto/lto.c:2263
0x56d068 read_cgraph_and_symbols
../../gcc/lto/lto.c:2966
0x56d068 lto_main()
../../gcc/lto/lto.c:3420
where type1 at ipa-devirt.c:449 is:
<array_type 0x7fffcb788bd0 UVersionInfo
type <integer_type 0x7ffff6e1c888 uint8_t public unsigned string-flag QI
size <integer_cst 0x7ffff6c2ec48 constant 8>
unit size <integer_cst 0x7ffff6c2ec60 constant 1>
align 8 symtab 0 alias set 0 canonical type 0x7ffff6c323f0 precision 8
min <integer_cst 0x7ffff6c2ec78 0> max <integer_cst 0x7ffff6c2ec18 255>
pointer_to_this <pointer_type 0x7ffff6379690> reference_to_this
<reference_type 0x7fffe1ad93f0>>
SI
size <integer_cst 0x7ffff6c2ed98 type <integer_type 0x7ffff6c32150
bitsizetype> constant 32>
unit size <integer_cst 0x7ffff6c2edb0 type <integer_type 0x7ffff6c320a8
sizetype> constant 4>
align 8 symtab 0 alias set 0 canonical type 0x7ffff69b6f18
domain <integer_type 0x7ffff6da1000
type <integer_type 0x7ffff6c320a8 sizetype public unsigned DI
size <integer_cst 0x7ffff6c2eb58 constant 64>
unit size <integer_cst 0x7ffff6c2eb70 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x7ffff6c32888
precision 64 min <integer_cst 0x7ffff6c2eb88 0> max <integer_cst 0x7ffff6c3e460
18446744073709551615>
pointer_to_this <pointer_type 0x7fffef83abd0>>
DI size <integer_cst 0x7ffff6c2eb58 64> unit size <integer_cst
0x7ffff6c2eb70 8>
align 64 symtab 0 alias set 0 canonical type 0x7ffff6c327e0 precision
64 min <integer_cst 0x7ffff6c2eb88 0> max <integer_cst 0x7ffff6d89d20 3>>
pointer_to_this <pointer_type 0x7fffcb78ef18>>
Unfortunately, it looks very hard to isolate a few objects (libraries) for
Chrome, my current minimum command-line is still following:
c++ -fPIC -pie -L. -O2 -flto=7 -Wl,--start-group
obj/chrome/app/chrome_initial.chrome_main.o obj/content/libcontent_worker.a
obj/content/libcontent_app_both.a
obj/third_party/WebKit/Source/platform/libblink_platform.a
obj/third_party/ots/libots.a
obj/third_party/WebKit/Source/web/libblink_web.a
obj/third_party/WebKit/Source/core/libwebcore_remaining.a -Wl,--end-group
--verbose --save-temps
Why necessary, I will try to isolate the bunch of translation units.
Thanks,
Martin