forked from OSchip/llvm-project
parent
fb414bc66d
commit
a994df5a02
|
@ -1492,14 +1492,15 @@ from exceptions.</p></div>
|
|||
<div id="runtime">
|
||||
<h1>Runtime support</h1>
|
||||
|
||||
<p>This section describes the requirements of the current ARC
|
||||
implementation in Clang on the Objective-C runtime. It is not part of
|
||||
the ARC language specification; instead, it is effectively a
|
||||
language-specific ABI supplement, akin to the Itanium ABI for C++.</p>
|
||||
<p>This section describes the interaction between the ARC runtime and
|
||||
the code generated by the ARC compiler. This is not part of the ARC
|
||||
language specification; instead, it is effectively a language-specific
|
||||
ABI supplement, akin to the <q>Itanium</q> generic ABI for C++.</p>
|
||||
|
||||
<p>Ownership qualification does not alter the storage requirements for
|
||||
an object, except that <tt>__weak</tt> objects must always be
|
||||
appropriately aligned for an object of type <tt>id</tt>.</p>
|
||||
objects, except that it is undefined behavior if a <tt>__weak</tt>
|
||||
object is inadequately aligned for an object of type <tt>id</tt>. The
|
||||
other qualifiers may be used on explicitly under-aligned memory.</p>
|
||||
|
||||
<p>The runtime tracks <tt>__weak</tt> objects which holds non-null
|
||||
values. It is undefined behavior to direct modify a <tt>__weak</tt>
|
||||
|
@ -1674,6 +1675,15 @@ may be left as null.</p>
|
|||
on <tt>src</tt>.</p>
|
||||
</div> <!-- runtime.objc_moveWeak -->
|
||||
|
||||
<div id="runtime.objc_release">
|
||||
<h1><tt>void objc_release(id value);</tt></h1>
|
||||
<p><i>Precondition:</i> <tt>value</tt> is null or a pointer to a
|
||||
valid object.</p>
|
||||
<p>If <tt>value</tt> is null, this call has no effect. Otherwise, it
|
||||
performs a release operation exactly as if the object had been sent
|
||||
the <tt>release</tt> message.</p>
|
||||
</div> <!-- runtime.objc_release -->
|
||||
|
||||
<div id="runtime.objc_retain">
|
||||
<h1><tt>id objc_retain(id value);</tt></h1>
|
||||
<p><i>Precondition:</i> <tt>value</tt> is null or a pointer to a
|
||||
|
@ -1735,15 +1745,6 @@ a retain operation is performed on the block exactly as if it had been
|
|||
sent the <tt>retain</tt> message.</p>
|
||||
</div> <!-- runtime.objc_retainBlock -->
|
||||
|
||||
<div id="runtime.objc_release">
|
||||
<h1><tt>void objc_release(id value);</tt></h1>
|
||||
<p><i>Precondition:</i> <tt>value</tt> is null or a pointer to a
|
||||
valid object.</p>
|
||||
<p>If <tt>value</tt> is null, this call has no effect. Otherwise, it
|
||||
performs a release operation exactly as if the object had been sent
|
||||
the <tt>release</tt> message.</p>
|
||||
</div> <!-- runtime.objc_release -->
|
||||
|
||||
<div id="runtime.objc_storeStrong">
|
||||
<h1><tt>id objc_storeStrong(id *object, id value);</tt></h1>
|
||||
<p><i>Precondition:</i> <tt>object</tt> is a valid pointer to
|
||||
|
|
Loading…
Reference in New Issue