improve documentation for linker_private linkage.
authorChris Lattner <sabre@nondot.org>
Mon, 24 Aug 2009 04:32:16 +0000 (04:32 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 24 Aug 2009 04:32:16 +0000 (04:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79893 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html

index 384c1201fa1a21818c6f850fd561074353d1a310..ab86271f333db9133792a1f35630fb0262d5f987 100644 (file)
@@ -529,7 +529,11 @@ define i32 @main() {                                              <i>; i32()* </
 
   <dt><tt><b><a name="linkage_linker_private">linker_private</a></b></tt>: </dt>
   <dd>Similar to private, but the symbol is passed through the assembler and
-      removed by the linker after evaluation.</dd>
+      removed by the linker after evaluation.  Note that (unlike private
+      symbols) linker_private symbols are subject to coalescing by the linker:
+      weak symbols get merged and redefinitions are rejected.  However, unlike
+      normal strong symbols, they are removed by the linker from the final
+      linked image (executable or dynamic library).</dd>
 
   <dt><tt><b><a name="linkage_internal">internal</a></b></tt>: </dt>
   <dd>Similar to private, but the value shows as a local symbol