[llvm] r196300 - Teach the internalize pass to skip dllexported symbols because they could be
Gao, Yunzhong
yunzhong_gao at playstation.sony.com
Wed Dec 4 14:16:49 PST 2013
Hi,
Many thanks to Rafael for pointing this out and researching on the exported symbols. Please
review the doc changes below, which I plan to submit against LangRef.rst.
- Gao.
Index: llvm/docs/LangRef.rst
===================================================================
--- llvm/docs/LangRef.rst (revision 196419)
+++ llvm/docs/LangRef.rst (working copy)
@@ -289,7 +289,9 @@
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 @@
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
More information about the llvm-commits
mailing list