From 085d09d14365cef1faa7a376730911227ee39ee3 Mon Sep 17 00:00:00 2001 From: John McCall Date: Sun, 19 Jun 2011 10:12:24 +0000 Subject: [PATCH] More clarifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133387 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/AutomaticReferenceCounting.html | 31 ++++++++++++++-------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/AutomaticReferenceCounting.html b/docs/AutomaticReferenceCounting.html index cbc509f44a..8b52038202 100644 --- a/docs/AutomaticReferenceCounting.html +++ b/docs/AutomaticReferenceCounting.html @@ -1492,14 +1492,15 @@ from exceptions.

Runtime support

-

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++.

+

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 Itanium generic ABI for C++.

Ownership qualification does not alter the storage requirements for -an object, except that __weak objects must always be -appropriately aligned for an object of type id.

+objects, except that it is undefined behavior if a __weak +object is inadequately aligned for an object of type id. The +other qualifiers may be used on explicitly under-aligned memory.

The runtime tracks __weak objects which holds non-null values. It is undefined behavior to direct modify a __weak @@ -1674,6 +1675,15 @@ may be left as null.

on src.

+
+

void objc_release(id value);

+

Precondition: value is null or a pointer to a +valid object.

+

If value is null, this call has no effect. Otherwise, it +performs a release operation exactly as if the object had been sent +the release message.

+
+

id objc_retain(id value);

Precondition: value 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 retain message.

-
-

void objc_release(id value);

-

Precondition: value is null or a pointer to a -valid object.

-

If value is null, this call has no effect. Otherwise, it -performs a release operation exactly as if the object had been sent -the release message.

-
-

id objc_storeStrong(id *object, id value);

Precondition: object is a valid pointer to -- 2.40.0