Граф коммитов

21 Коммитов

Автор SHA1 Сообщение Дата
John McCall 100c6491c9 Forbid the block and lambda copy-capture of __autoreleasing variables
in ARC, under the usual reasoning limiting the use of __autoreleasing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153725 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30 05:23:48 +00:00
John McCall 9da31cb1c5 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153501 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27 07:42:12 +00:00
Benjamin Kramer 665a8dc953 Fix ALL the markup.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148219 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-15 15:26:07 +00:00
David Blaikie 0ff6495662 Fix typo (becuase->because), PR11427
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145117 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-24 00:37:54 +00:00
Ted Kremenek 2bbcd5ce37 ARC: make assignment to 'self' within class methods illegal. Fixes <rdar://problem/10416568>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144572 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-14 21:59:25 +00:00
David Blaikie 5090e9f96e Update documentation to use "C++11" instead of "C++0x"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142339 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-18 05:49:30 +00:00
John McCall dc7c5ad7a1 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.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135764 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-22 08:53:00 +00:00
John McCall 4f264950e5 Document the behavior of property modifiers in ARC.
rdar://problem/9768338



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135104 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13 23:15:32 +00:00
John McCall 2fad7838c0 Move and elaborate the section on objc_arc_weak_unavailable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134567 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07 00:03:42 +00:00
Fariborz Jahanian a236c0e47a Update document for objc_arc_weak_unavailable attribute
on class declarations. Documentation for // rdar://9693477


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134558 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 22:56:44 +00:00
Fariborz Jahanian acd4aaf69e Update document on use of ns_returns_not_retained
attribute on property. Document for // rdar://9636091.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134556 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 22:47:46 +00:00
Fariborz Jahanian a26b2e5ab6 Update documentation for // rdar://9619861
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06 21:58:44 +00:00
John McCall 085d09d143 More clarifications.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133387 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-19 10:12:24 +00:00
John McCall 3914a306e4 Improve the intro to the runtime-functions section.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133386 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-19 09:59:33 +00:00
John McCall 98a48cf99d Describe the ARC runtime support calls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133385 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-19 09:36:02 +00:00
John McCall be16b8986e Clarify the semantics of init methods, and point out a few places
where mismatched semantics can cause undefined behavior.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133341 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-18 08:15:19 +00:00
John McCall f3d08a6882 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.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133340 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-18 07:31:30 +00:00
Douglas Gregor 4020caec54 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.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133309 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 23:16:24 +00:00
Douglas Gregor 54fb28ad4a Fix a grammaro
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133304 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 22:19:27 +00:00
Douglas Gregor e559ca1672 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>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133303 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 22:11:49 +00:00
John McCall 8246702d0c The specification document for the new ObjC Automatic Reference Counting
feature.

Implementation to follow. :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133090 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 21:21:53 +00:00