[Bug lto/89762] New: Mixing optimization levels with ostream gives lto1: internal compiler error: in get_odr_type, at ipa-devirt.c:2098

dan at stahlke dot org gcc-bugzilla@gcc.gnu.org
Mon Mar 18 16:39:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89762

            Bug ID: 89762
           Summary: Mixing optimization levels with ostream gives lto1:
                    internal compiler error: in get_odr_type, at
                    ipa-devirt.c:2098
           Product: gcc
           Version: 8.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dan at stahlke dot org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

=== A.cpp

#include <iostream>
std::ostream *a;
int main() { }

=== B.cpp

#include <iostream>
std::ostream *b;

=== script (note different optimization levels)

rm -f A.o B.o AB
$CXX -flto -Wall -O1 -c A.cpp -o A.o
$CXX -flto -Wall -O2 -c B.cpp -o B.o
$CXX -flto A.o B.o -o AB

=== result

lto1: internal compiler error: in get_odr_type, at ipa-devirt.c:2098            
0x5d4a06 get_odr_type(tree_node*, bool)                     
        ../../gcc-8.3.0/gcc/ipa-devirt.c:2098               
0x8398a3 register_odr_type(tree_node*)                      
        ../../gcc-8.3.0/gcc/ipa-devirt.c:2123               
0x626a86 lto_read_decls       
        ../../gcc-8.3.0/gcc/lto/lto.c:1887                  
0x627788 lto_file_finalize    
        ../../gcc-8.3.0/gcc/lto/lto.c:2121                  
0x627788 lto_create_files_from_ids                          
        ../../gcc-8.3.0/gcc/lto/lto.c:2131                  
0x627788 lto_file_read        
        ../../gcc-8.3.0/gcc/lto/lto.c:2172                  
0x627788 read_cgraph_and_symbols                            
        ../../gcc-8.3.0/gcc/lto/lto.c:2845                  
0x627788 lto_main()           
        ../../gcc-8.3.0/gcc/lto/lto.c:3362                  

=== build info

Broken in 8.3:

Using built-in specs.
COLLECT_GCC=XXX/gcc-8.3.0/install/bin/g++
COLLECT_LTO_WRAPPER=XXX/gcc-8.3.0/install/libexec/gcc/x86_64-pc-linux-gnu/8.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-8.3.0/configure
--prefix=/nfs/orto/proj/tapeout/cit_dev10/mkgumbel/gcc-8.3.0/install
--enable-compressed-debug-sections=all
Thread model: posix
gcc version 8.3.0 (GCC) 

Works in 9-20190310:

Using built-in specs.
COLLECT_GCC=XXX/gcc-9/install/bin/g++
COLLECT_LTO_WRAPPER=XXX/gcc-9/install/libexec/gcc/x86_64-pc-linux-gnu/9.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-9-20190310/configure
--prefix=/nfs/orto/proj/tapeout/cit_dev10/mkgumbel/gcc-9/install
--enable-compressed-debug-sections=all --enable-gold --disable-werror
--disable-bootstrap
Thread model: posix
gcc version 9.0.1 20190310 (experimental) (GCC)


More information about the Gcc-bugs mailing list