http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58045
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-09-09
Ever confirmed|0 |1
--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
This is different from the other PR.
Here C++ FE declare the function as:
_ZNK4llvm14raw_fd_ostream11current_posEv/6 (virtual uint64_t
llvm::raw_fd_ostream::current_pos() const) @0x7ffff7047980
Type: function definition analyzed
Visibility: external public weak comdat
comdat_group:_ZNK4llvm14raw_fd_ostream11current_posEv one_only virtual
References: __gcov0._ZNK4llvm14raw_fd_ostream11current_posEv/78
(read)__gcov0._ZNK4llvm14raw_fd_ostream11current_posEv/78 (write)
Referring:
Availability: available
Profile id: 1497168468
Function flags: body
Called by:
_ZL16writeStringTableRN4llvm14raw_fd_ostreamENS_8ArrayRefIN12_GLOBAL__N_118NewArchiveIteratorEEERSt6vectorIjSaIjEE.isra.8.constprop.12/90
(1.47 per call) (can throw external)
The meaning of external comdat does not make that much sense to me but I can
definitely make can_refer_decl_in_current_unit_p to declare the function
non-referable. That would untimately prevent inlining while it is certainly
possible, since body is around.
Jason, why the function is external and isn't there way to simply make it
comdat?