https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86905
Bug ID: 86905 Summary: g++ ICE on valid code: verify_cgraph_node failed Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: helloqirun at gmail dot com Target Milestone: --- It appears to be a recent regression. g++-8.1 compiles. $ g++-trunk -v Using built-in specs. COLLECT_GCC=g++-trunk COLLECT_LTO_WRAPPER=/home/absozero/trunk/root-gcc/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure --prefix=/home/absozero/trunk/root-gcc --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 9.0.0 20180809 (experimental) [trunk revision 263445] (GCC) $ g++-trunk abc.C abc.C: In function ‘int pthread_equal()’: abc.C:1:42: warning: no return statement in function returning non-void [-Wreturn-type] extern "C" __inline int pthread_equal() {} ^ abc.C: At global scope: abc.C:3:17: error: comdat-local function called by void b() outside its comdat void b() { a(); } ^ _ZL1av/1 (int a()) @0x7f1523464420 Type: function definition analyzed alias transparent_alias weakref Visibility: weak comdat_group:pthread_equal Same comdat group as: pthread_equal/0 References: pthread_equal/0 (alias) Referring: First run: 0 Function flags: Called by: void b()/2 (can throw external) Calls: abc.C:3:17: internal compiler error: verify_cgraph_node failed 0xaf69ec cgraph_node::verify_node() ../../gcc/gcc/cgraph.c:3433 0xaeae8c symtab_node::verify() ../../gcc/gcc/symtab.c:1218 0xaeaf57 symtab_node::verify_symtab_nodes() ../../gcc/gcc/symtab.c:1238 0xafe434 symtab_node::checking_verify_symtab_nodes() ../../gcc/gcc/cgraph.h:625 0xafe434 symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2520 0xb00399 symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2517 0xb00399 symbol_table::finalize_compilation_unit() ../../gcc/gcc/cgraphunit.c:2698 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. $ cat abc.C extern "C" __inline int pthread_equal() {} static __typeof(pthread_equal) a __attribute__((__weakref__("pthread_equal"))); void b() { a(); }