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 cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits