[cfe-commits] r133387 - /cfe/trunk/docs/AutomaticReferenceCounting.html

John McCall rjmccall at apple.com
Sun Jun 19 03:12:24 PDT 2011


Author: rjmccall
Date: Sun Jun 19 05:12:24 2011
New Revision: 133387

URL: http://llvm.org/viewvc/llvm-project?rev=133387&view=rev
Log:
More clarifications.


Modified:
    cfe/trunk/docs/AutomaticReferenceCounting.html

Modified: cfe/trunk/docs/AutomaticReferenceCounting.html
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/AutomaticReferenceCounting.html?rev=133387&r1=133386&r2=133387&view=diff
==============================================================================
--- cfe/trunk/docs/AutomaticReferenceCounting.html (original)
+++ cfe/trunk/docs/AutomaticReferenceCounting.html Sun Jun 19 05:12:24 2011
@@ -1492,14 +1492,15 @@
 <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 @@
 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 @@
 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





More information about the cfe-commits mailing list