This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ipa/63298] New: [5 Regression] internal compiler error: in types_same_for_odr, at ipa-devirt.c:449 with LTO


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]