summaryrefslogtreecommitdiffstats
path: root/libcxx/docs/DesignDocs
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2018-07-11 23:14:33 +0000
committerLouis Dionne <ldionne@apple.com>2018-07-11 23:14:33 +0000
commitdc7200b486b6c5b5229abcee97c160145cc3d955 (patch)
treef4373ca956f1ba3ccf7bde5e1a396f9819472f60 /libcxx/docs/DesignDocs
parent62c76db4eec8ef64a03c4b077045893bebfc38e9 (diff)
downloadbcm5719-llvm-dc7200b486b6c5b5229abcee97c160145cc3d955.tar.gz
bcm5719-llvm-dc7200b486b6c5b5229abcee97c160145cc3d955.zip
[libc++] Take 2: Replace uses of _LIBCPP_ALWAYS_INLINE by _LIBCPP_INLINE_VISIBILITY
Summary: We never actually mean to always inline a function -- all the uses of the macro I could find are actually attempts to control the visibility of symbols. This is better described by _LIBCPP_INLINE_VISIBILITY, which is actually always defined the same. This change is orthogonal to the decision of what we're actually going to do with _LIBCPP_INLINE_VISIBILITY -- it just simplifies things by having one canonical way of doing things. Note that this commit had originally been applied in r336369 and then reverted in r336382 because of unforeseen problems. Both of these problems have now been fixed. Reviewers: EricWF, mclow.lists Subscribers: christof, dexonsmith, erikvanderpoel Differential Revision: https://reviews.llvm.org/D48892 llvm-svn: 336866
Diffstat (limited to 'libcxx/docs/DesignDocs')
-rw-r--r--libcxx/docs/DesignDocs/VisibilityMacros.rst8
1 files changed, 4 insertions, 4 deletions
diff --git a/libcxx/docs/DesignDocs/VisibilityMacros.rst b/libcxx/docs/DesignDocs/VisibilityMacros.rst
index 993ce2cca5f..69a09974acd 100644
--- a/libcxx/docs/DesignDocs/VisibilityMacros.rst
+++ b/libcxx/docs/DesignDocs/VisibilityMacros.rst
@@ -41,10 +41,10 @@ Visibility Macros
library and has an empty definition otherwise.
**_LIBCPP_INLINE_VISIBILITY**
- Mark a function as hidden and force inlining whenever possible.
-
-**_LIBCPP_ALWAYS_INLINE**
- A synonym for `_LIBCPP_INLINE_VISIBILITY`
+ Mark a function as not being part of the ABI of any final linked image that
+ uses it, and also as being internal to each TU that uses that function. In
+ other words, the address of a function marked with this attribute is not
+ guaranteed to be the same across translation units.
**_LIBCPP_TYPE_VIS**
Mark a type's typeinfo, vtable and members as having default visibility.
OpenPOWER on IntegriCloud