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

Reply via email to