https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80366
Bug ID: 80366 Summary: [7 Regression] r246759 causes LLVM build failure: error: comdat-local function called by outside its comdat Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org CC: hubicka at ucw dot cz, marxin at gcc dot gnu.org Target Milestone: --- Since r246759 LLVM doesn't build anymore: trippels@gcc2-power8 llvm_build % cat DAGISelMatcherEmitter.ii struct B { int *Ptr; B(int, int p2) { if (!p2) if (Ptr || *Ptr) ++Ptr; } }; template <typename> struct StringMapIterator : B { using base = B; StringMapIterator() : base(0, 0) {} }; template <typename> struct A { void operator[](int) { StringMapIterator<int>(); } }; struct C { A<int> PatternPredicateMap; unsigned m_fn1(); }; unsigned C::m_fn1() { PatternPredicateMap[0]; } trippels@gcc2-power8 llvm_build % g++ -c -O3 DAGISelMatcherEmitter.ii DAGISelMatcherEmitter.ii:20:47: error: comdat-local function called by B::B(int, int) outside its comdat unsigned C::m_fn1() { PatternPredicateMap[0]; } ^ _ZN1BC2Eii.part.0/8 (B::B(int, int)) @0x3fff7bf70000 Type: function definition analyzed Visibility: prevailing_def_ironly comdat_group:_ZN1BC5Eii artificial Same comdat group as: _ZN1BC2Eii/1 References: Referring: Availability: local First run: 1 Function flags: body local split_part Called by: _ZN1BC2Eii.constprop.2/10 (0.54 per call) _ZN1BC2Eii/1 (0.54 per call) Calls: DAGISelMatcherEmitter.ii:20:47: internal compiler error: verify_cgraph_node failed 0x10610e0b cgraph_node::verify_node() ../../gcc/gcc/cgraph.c:3505 0x10600ec3 symtab_node::verify() ../../gcc/gcc/symtab.c:1183 0x106013c7 symtab_node::verify_symtab_nodes() ../../gcc/gcc/symtab.c:1203 0x10904b43 symtab_node::checking_verify_symtab_nodes() ../../gcc/gcc/cgraph.h:616 0x10904b43 symbol_table::remove_unreachable_nodes(_IO_FILE*) ../../gcc/gcc/ipa.c:698 0x10a3c62f execute_todo ../../gcc/gcc/passes.c:2030