http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59469

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|c++                         |ipa

--- Comment #36 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jason Merrill from comment #34)
> I tried adding a mark_needed call to mark_decl_instantiated, as in this
> patch.  But setting forced_by_abi on the cgraph node for the instantiation
> doesn't seem to help; the LTO output still has a private symbol.

With this patch (which I just checked in), the cgraph dump looks like

_ZN4llvm21SymbolTableListTraitsINS_10BasicBlockENS_8FunctionEE21transferNodesFromListERNS_12ilist_traitsIS1_EENS_14ilist_iteratorIS1_EES8_/3692
(void llvm::SymbolTableListTraits<ValueSubClass,
ItemParentClass>::transferNodesFromList(llvm::ilist_traits<NodeTy>&,
llvm::ilist_iterator<NodeTy>, llvm::ilist_iterator<NodeTy>) [with ValueSubClass
= llvm::BasicBlock; ItemParentClass = llvm::Function]) @0x7f75f3a373d8
  Type: function definition analyzed
  Visibility: forced_by_abi public weak
comdat_group:_ZN4llvm21SymbolTableListTraitsINS_10BasicBlockENS_8FunctionEE21transferNodesFromListERNS_12ilist_traitsIS1_EENS_14ilist_iteratorIS1_EES8_
one_only

So I don't know why LTO is still turning it into a local symbol.

Changing component back to ipa.

Reply via email to