diff options
author | Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> | 2013-12-05 18:37:54 +0000 |
---|---|---|
committer | Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> | 2013-12-05 18:37:54 +0000 |
commit | 9477d577636bb7262aad0daf6fee1d1aa74b3d08 (patch) | |
tree | 4c35ec2727a0efc1a56fe45eba7aa61c2523f03e /docs | |
parent | 3bb1184a1a67e516fad3f6d8a13928f7e8993f5e (diff) | |
download | llvm-9477d577636bb7262aad0daf6fee1d1aa74b3d08.tar.gz llvm-9477d577636bb7262aad0daf6fee1d1aa74b3d08.tar.bz2 llvm-9477d577636bb7262aad0daf6fee1d1aa74b3d08.tar.xz |
Document that dllexported symbols are preserved by optimization passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196523 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/LangRef.rst | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/docs/LangRef.rst b/docs/LangRef.rst index f7f83dba69..9adbea5e9e 100644 --- a/docs/LangRef.rst +++ b/docs/LangRef.rst @@ -289,7 +289,9 @@ symbols from (to) DLLs (Dynamic Link Libraries). pointer to a pointer in a DLL, so that it can be referenced with the ``dllimport`` attribute. On Microsoft Windows targets, the pointer name is formed by combining ``__imp_`` and the function or variable - name. + name. Since this linkage exists for defining a dll interface, the + compiler, assembler and linker know it is externally referenced and + must refrain from deleting the symbol. It is illegal for a function *declaration* to have any linkage type other than ``external``, ``dllimport`` or ``extern_weak``. @@ -501,8 +503,8 @@ variables defined within the module are not modified from their initial values before the start of the global initializer. This is true even for variables potentially accessible from outside the module, including those with external linkage or appearing in -``@llvm.used``. This assumption may be suppressed by marking the -variable with ``externally_initialized``. +``@llvm.used`` or dllexported variables. This assumption may be suppressed +by marking the variable with ``externally_initialized``. An explicit alignment may be specified for a global, which must be a power of 2. If not present, or if the alignment is set to zero, the |