smeenai added a comment.
Will do the rebase.
================
Comment at: include/locale:626
template <class _Fp>
+ _LIBCPP_HIDDEN
iter_type __do_get_floating_point
----------------
EricWF wrote:
> After applying the changes to `__config` but not this header
> `check-cxx-abilist` didn't report any changes to these symbols. Why is this
> needed again?
It's to prevent https://llvm.org/bugs/show_bug.cgi?id=30642 from occurring
again. If an extern template class is marked default visibility, and you have
template methods of that class which get instantiated in other libraries, those
template method instantiations also get marked default visibility, so now other
libraries are exporting libc++ symbols. This change marks all such template
methods as hidden to prevent the leakage.
That might not be the most clear explanation, so
https://ghostbin.com/paste/29y9d demonstrates what I mean. (It's also the root
cause of PR30642.)
https://reviews.llvm.org/D25208 addresses the same issue for non-template
classes.
================
Comment at: include/string:1100
template<class _InputIterator>
+ inline _LIBCPP_INLINE_VISIBILITY
typename enable_if
----------------
EricWF wrote:
> Why `inline _LIBCPP_INLINE_VISIBILITY` here but `_LIBCPP_HIDDEN` everywhere
> else?
This function is really small, so I figured marking it for inlining was more
appropriate.
https://reviews.llvm.org/D29157
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits