Commit Graph

21 Commits

Author SHA1 Message Date
John McCall 67cd5e094e Forbid the block and lambda copy-capture of __autoreleasing variables
in ARC, under the usual reasoning limiting the use of __autoreleasing.

llvm-svn: 153725
2012-03-30 05:23:48 +00:00
John McCall 01a360f06c Update the ARC specification for several changes made in the
last N months.  This required a brief soliloquy about change in
an uncertainly-versioned world.

I believe I've gotten the right target versions on all these changes.

llvm-svn: 153501
2012-03-27 07:42:12 +00:00
Benjamin Kramer eaa262b5b8 Fix ALL the markup.
llvm-svn: 148219
2012-01-15 15:26:07 +00:00
David Blaikie 4f1f9e6b2e Fix typo (becuase->because), PR11427
llvm-svn: 145117
2011-11-24 00:37:54 +00:00
Ted Kremenek 1fcdaa9c05 ARC: make assignment to 'self' within class methods illegal. Fixes <rdar://problem/10416568>.
llvm-svn: 144572
2011-11-14 21:59:25 +00:00
David Blaikie 8317245f9c Update documentation to use "C++11" instead of "C++0x"
llvm-svn: 142339
2011-10-18 05:49:30 +00:00
John McCall cf1667022f Document the existing objc_precise_lifetime attribute.
Introduce and document a new objc_returns_inner_pointer
attribute, and consume it by performing a retain+autorelease
on message receivers when they're not immediately loaded from
an object with precise lifetime.

llvm-svn: 135764
2011-07-22 08:53:00 +00:00
John McCall 7c3ed3d0c5 Document the behavior of property modifiers in ARC.
rdar://problem/9768338

llvm-svn: 135104
2011-07-13 23:15:32 +00:00
John McCall c3df93aa0d Move and elaborate the section on objc_arc_weak_unavailable.
llvm-svn: 134567
2011-07-07 00:03:42 +00:00
Fariborz Jahanian 1025318ca9 Update document for objc_arc_weak_unavailable attribute
on class declarations. Documentation for // rdar://9693477

llvm-svn: 134558
2011-07-06 22:56:44 +00:00
Fariborz Jahanian e634a92dac Update document on use of ns_returns_not_retained
attribute on property. Document for // rdar://9636091.

llvm-svn: 134556
2011-07-06 22:47:46 +00:00
Fariborz Jahanian 251e793a3f Update documentation for // rdar://9619861
llvm-svn: 134544
2011-07-06 21:58:44 +00:00
John McCall a994df5a02 More clarifications.
llvm-svn: 133387
2011-06-19 10:12:24 +00:00
John McCall fb414bc66d Improve the intro to the runtime-functions section.
llvm-svn: 133386
2011-06-19 09:59:33 +00:00
John McCall 092701c326 Describe the ARC runtime support calls.
llvm-svn: 133385
2011-06-19 09:36:02 +00:00
John McCall 9cc574d538 Clarify the semantics of init methods, and point out a few places
where mismatched semantics can cause undefined behavior.

llvm-svn: 133341
2011-06-18 08:15:19 +00:00
John McCall f8d4799267 A couple of minor changes to the ARC spec, plus a new section
specifying that retain/release/autorelease/retainCount are forbidden,
plus a section talking about the behavior of dealloc.

llvm-svn: 133340
2011-06-18 07:31:30 +00:00
Douglas Gregor d7357a9b8e Objective-C++ ARC: eliminate the utterly unjustified loophole that
silently dropped ownership qualifiers that were being applied to
ownership-qualified, substituted type that was *not* a substituted
template type parameter. We now provide a diagnostic in such cases,
and recover by dropping the added qualifiers.

Document this behavior in the ARC specification.

llvm-svn: 133309
2011-06-17 23:16:24 +00:00
Douglas Gregor 4fdf57b0b2 Fix a grammaro
llvm-svn: 133304
2011-06-17 22:19:27 +00:00
Douglas Gregor e46db90c9a Objective-ARC++: infer template type arguments of
ownership-unqualified retainable object type as __strong. This allows
us to write, e.g.,

  std::vector<id>

and we'll infer that the vector's element types have __strong
ownership semantics, which is far nicer than requiring:

  std::vector<__strong id>

Note that we allow one to override the ownership qualifier of a
substituted template type parameter, e.g., given

  template<typename T>
  struct X {
    typedef __weak T type;
  };

X<id> is treated the same as X<__strong id>. At instantiation type,
the __weak in "__weak T" overrides the (inferred or specified)
__strong on the template argument type, so that we can still provide
metaprogramming transformations.

This is part of <rdar://problem/9595486>.

llvm-svn: 133303
2011-06-17 22:11:49 +00:00
John McCall 556fad31d1 The specification document for the new ObjC Automatic Reference Counting
feature.

Implementation to follow. :)

llvm-svn: 133090
2011-06-15 21:21:53 +00:00