mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
Remove the one-definition-rule version of extern_weak
linkage: this linkage type only applies to declarations, but ODR is only relevant to globals with definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66650 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
+5
-7
@@ -554,15 +554,13 @@ All Global Variables and Functions have one of the following types of linkage:
|
||||
<dt><tt><b><a name="linkage_linkonce">linkonce_odr</a></b></tt>: </dt>
|
||||
<dt><tt><b><a name="linkage_common">common_odr</a></b></tt>: </dt>
|
||||
<dt><tt><b><a name="linkage_weak">weak_odr</a></b></tt>: </dt>
|
||||
<dt><tt><b><a name="linkage_externweak">extern_weak_odr</a></b></tt>: </dt>
|
||||
<dd>Some languages allow inequivalent globals to be merged, such as two
|
||||
functions with different semantics. Other languages, such as <tt>C++</tt>,
|
||||
ensure that only equivalent globals are ever merged (the "one definition
|
||||
rule" - <tt>odr</tt>). Such languages can use the <tt>linkonce_odr</tt>,
|
||||
<tt>common_odr</tt>, <tt>weak_odr</tt> and <tt>extern_weak_odr</tt> linkage
|
||||
types to indicate that the global will only be merged with equivalent
|
||||
globals. These linkage types are otherwise the same as their
|
||||
non-<tt>odr</tt> versions.
|
||||
<tt>common_odr</tt> and <tt>weak_odr</tt> linkage types to indicate that
|
||||
the global will only be merged with equivalent globals. These linkage
|
||||
types are otherwise the same as their non-<tt>odr</tt> versions.
|
||||
</dd>
|
||||
|
||||
<dt><tt><b><a name="linkage_external">externally visible</a></b></tt>:</dt>
|
||||
@@ -606,8 +604,8 @@ preventing a collision. Since "<tt>main</tt>" and "<tt>puts</tt>" are
|
||||
external (i.e., lacking any linkage declarations), they are accessible
|
||||
outside of the current module.</p>
|
||||
<p>It is illegal for a function <i>declaration</i>
|
||||
to have any linkage type other than "externally visible", <tt>dllimport</tt>,
|
||||
<tt>extern_weak</tt> or <tt>extern_weak_odr</tt>.</p>
|
||||
to have any linkage type other than "externally visible", <tt>dllimport</tt>
|
||||
or <tt>extern_weak</tt>.</p>
|
||||
<p>Aliases can have only <tt>external</tt>, <tt>internal</tt>, <tt>weak</tt>
|
||||
or <tt>weak_odr</tt> linkages.</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user