r271063 - docs: Clarify that LTO visibility is based on source-level symbol visibility.
Peter Collingbourne via cfe-commits
cfe-commits at lists.llvm.org
Fri May 27 15:31:31 PDT 2016
Author: pcc
Date: Fri May 27 17:31:30 2016
New Revision: 271063
URL: http://llvm.org/viewvc/llvm-project?rev=271063&view=rev
Log:
docs: Clarify that LTO visibility is based on source-level symbol visibility.
Modified:
cfe/trunk/docs/LTOVisibility.rst
Modified: cfe/trunk/docs/LTOVisibility.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/LTOVisibility.rst?rev=271063&r1=271062&r2=271063&view=diff
==============================================================================
--- cfe/trunk/docs/LTOVisibility.rst (original)
+++ cfe/trunk/docs/LTOVisibility.rst Fri May 27 17:31:30 2016
@@ -23,14 +23,16 @@ control flow integrity features can only
visibility. A class's LTO visibility is treated as an ODR-relevant property
of its definition, so it must be consistent between translation units.
-In translation units built with LTO, LTO visibility is based on symbol
-visibility or, on the Windows platform, the dllimport and dllexport
-attributes. When targeting non-Windows platforms, classes with a visibility
-other than hidden visibility receive public LTO visibility. When targeting
-Windows, classes with dllimport or dllexport attributes receive public LTO
-visibility. All other classes receive hidden LTO visibility. Classes with
-internal linkage (e.g. classes declared in unnamed namespaces) also receive
-hidden LTO visibility.
+In translation units built with LTO, LTO visibility is based on the
+class's symbol visibility as expressed at the source level (i.e. the
+``__attribute__((visibility("...")))`` attribute, or the ``-fvisibility=``
+flag) or, on the Windows platform, the dllimport and dllexport attributes. When
+targeting non-Windows platforms, classes with a visibility other than hidden
+visibility receive public LTO visibility. When targeting Windows, classes
+with dllimport or dllexport attributes receive public LTO visibility. All
+other classes receive hidden LTO visibility. Classes with internal linkage
+(e.g. classes declared in unnamed namespaces) also receive hidden LTO
+visibility.
A class defined in a translation unit built without LTO receives public
LTO visibility regardless of its object file visibility, linkage or other
More information about the cfe-commits
mailing list