mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
improve documentation for linkonce to be less confusing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93066 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a77169dbeb
commit
873187c042
@ -558,10 +558,17 @@ define i32 @main() { <i>; i32()* </i>
|
||||
|
||||
<dt><tt><b><a name="linkage_linkonce">linkonce</a></b></tt></dt>
|
||||
<dd>Globals with "<tt>linkonce</tt>" linkage are merged with other globals of
|
||||
the same name when linkage occurs. This is typically used to implement
|
||||
inline functions, templates, or other code which must be generated in each
|
||||
translation unit that uses it. Unreferenced <tt>linkonce</tt> globals are
|
||||
allowed to be discarded.</dd>
|
||||
the same name when linkage occurs. This can be used to implement
|
||||
some forms of inline functions, templates, or other code which must be
|
||||
generated in each translation unit that uses it, but where the body may
|
||||
be overridden with a more definitive definition later. Unreferenced
|
||||
<tt>linkonce</tt> globals are allowed to be discarded. Note that
|
||||
<tt>linkonce</tt> linkage does not actually allow the optimizer to
|
||||
inline the body of this function into callers because it doesn't know if
|
||||
this definition of the function is the definitive definition within the
|
||||
program or whether it will be overridden by a stronger definition.
|
||||
To enable inlining and other optimizations, use "<tt>linkonce_odr</tt>"
|
||||
linkage.</dd>
|
||||
|
||||
<dt><tt><b><a name="linkage_weak">weak</a></b></tt></dt>
|
||||
<dd>"<tt>weak</tt>" linkage has the same merging semantics as
|
||||
|
Loading…
Reference in New Issue
Block a user