diff options
| author | John McCall <rjmccall@apple.com> | 2011-06-19 10:12:24 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2011-06-19 10:12:24 +0000 |
| commit | a994df5a02899540d3340926e9b7ee5d746ed2d5 (patch) | |
| tree | a549642656017ce56cfae2b52d4639fdf29d5120 | |
| parent | fb414bc66db6f4dba995f27fc628e1d52cdb90eb (diff) | |
| download | bcm5719-llvm-a994df5a02899540d3340926e9b7ee5d746ed2d5.tar.gz bcm5719-llvm-a994df5a02899540d3340926e9b7ee5d746ed2d5.zip | |
More clarifications.
llvm-svn: 133387
| -rw-r--r-- | clang/docs/AutomaticReferenceCounting.html | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/clang/docs/AutomaticReferenceCounting.html b/clang/docs/AutomaticReferenceCounting.html index cbc509f44a7..8b52038202a 100644 --- a/clang/docs/AutomaticReferenceCounting.html +++ b/clang/docs/AutomaticReferenceCounting.html @@ -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 |

