[PATCH] D14411: Use __attribute__((internal_linkage)) when available.
Evgeniy Stepanov via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 10 14:28:13 PST 2015
eugenis added dependencies: D15433: [libcxx] Remove inline/visibility attributes from exported template methods in valarray., D15432: [libcxx] Move member function definition before it's explicit template instantiation declaration in <valarray> to satisfy GCC..
eugenis added a comment.
Depends on http://reviews.llvm.org/D15432.
Depends on http://reviews.llvm.org/D15433.
With all that change, the switch to internal_linkage attribute removes 3 symbols from the libc++ export table, all in basic_string:
insert(..., InputIterator
insert(..., ForwardIterator
replace(..., InputIterator
These are template methods of a template class. They are instantiated only in functions/methods that are marked with LIBCPP_INLINE_VISIBILITY; normally they are exported as linkonce_odr; after the internal_linkage switch they are not instantiated at all because their callers are never evaluated.
Do you think this is an ABI break?
Repository:
rL LLVM
http://reviews.llvm.org/D14411
More information about the cfe-commits
mailing list