llvm-project/libcxx
Louis Dionne e9d85264ac [libc++] Use exclude_from_explicit_instantiation instead of always_inline
Summary:
This commit adopts the exclude_from_explicit_instantiation attribute discussed
at [1] and reviewed in [2] in libc++ to supplant the use of __always_inline__
for visibility purposes.

This change means that users wanting to link together translation units built
with different versions of libc++'s headers into the same final linked image
MUST define the _LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building those
TUs. Doing otherwise will lead to ODR violations and ABI issues.

[1]: http://lists.llvm.org/pipermail/cfe-dev/2018-August/059024.html
[2]: https://reviews.llvm.org/D51789

Reviewers: rsmith, EricWF

Subscribers: dexonsmith, libcxx-commits

Differential Revision: https://reviews.llvm.org/D52405

llvm-svn: 345516
2018-10-29 17:30:04 +00:00
..
benchmarks Add benchmark for std::set. 2018-10-23 14:49:27 +00:00
cmake [CMake] Use just basename when copying C++ ABI headers 2018-10-04 05:38:53 +00:00
docs [libc++] Use exclude_from_explicit_instantiation instead of always_inline 2018-10-29 17:30:04 +00:00
fuzzing Wrote my own version of is_permutation; that was dominating the timings 2018-01-19 03:17:45 +00:00
include [libc++] Use exclude_from_explicit_instantiation instead of always_inline 2018-10-29 17:30:04 +00:00
lib [NFC] Update comment in libc++ ABI changelog 2018-10-26 20:08:43 +00:00
src Implement sized deallocation for std::allocator and friends. 2018-10-25 17:21:30 +00:00
test Fix PR39458 _LIBCPP_DEBUG breaks heterogeneous compare. 2018-10-26 22:54:46 +00:00
utils [libcxx] Improve reporting when running the lit test suite 2018-10-17 16:12:04 +00:00
www Updated the issue notes. 2018-10-23 01:30:14 +00:00
.arcconfig [libcxx] Set up .arcconfig to point to new Diffusion CXX repository 2017-12-04 17:55:28 +00:00
.clang-format Make clang-format use C++03 syntax 2017-04-15 02:45:43 +00:00
.gitignore Implement N4606 optional 2016-10-12 07:46:20 +00:00
CMakeLists.txt Remove one more warning from clang-cl build 2018-10-01 03:59:05 +00:00
CREDITS.TXT Try again, this time with the correct address 2017-12-29 19:26:53 +00:00
LICENSE.TXT Update year to 2017 2017-01-03 11:20:43 +00:00
NOTES.TXT Reland "Use custom command and target to install libc++ headers" 2018-06-12 03:10:02 +00:00
TODO.TXT Add list of filesystem NB comments to TODO.TXT so they can be tracked separately 2017-03-06 21:23:36 +00:00
appveyor-reqs-install.cmd Update Clang version on Appveyor bots 2018-04-04 04:33:09 +00:00
appveyor.yml Rename Appveyor install helper script. 2017-05-10 02:43:02 +00:00