hanchenye-llvm-project/clang/test/ARCMT
John McCall 460ce58fa6 Define weak and __weak to mean ARC-style weak references, even in MRC.
Previously, __weak was silently accepted and ignored in MRC mode.
That makes this a potentially source-breaking change that we have to
roll out cautiously.  Accordingly, for the time being, actual support
for __weak references in MRC is experimental, and the compiler will
reject attempts to actually form such references.  The intent is to
eventually enable the feature by default in all non-GC modes.
(It is, of course, incompatible with ObjC GC's interpretation of
__weak.)

If you like, you can enable this feature with
  -Xclang -fobjc-weak
but like any -Xclang option, this option may be removed at any point,
e.g. if/when it is eventually enabled by default.

This patch also enables the use of the ARC __unsafe_unretained qualifier
in MRC.  Unlike __weak, this is being enabled immediately.  Since
variables are essentially __unsafe_unretained by default in MRC,
the only practical uses are (1) communication and (2) changing the
default behavior of by-value block capture.

As an implementation matter, this means that the ObjC ownership
qualifiers may appear in any ObjC language mode, and so this patch
removes a number of checks for getLangOpts().ObjCAutoRefCount
that were guarding the processing of these qualifiers.  I don't
expect this to be a significant drain on performance; it may even
be faster to just check for these qualifiers directly on a type
(since it's probably in a register anyway) than to do N dependent
loads to grab the LangOptions.

rdar://9674298

llvm-svn: 251041
2015-10-22 18:38:17 +00:00
..
Inputs Make the ARCMT tests self-contained. 2014-05-19 11:51:44 +00:00
designated-init-in-header Re-apply r197076 and r197086; the build was fixed by chapuni in r197114. 2013-12-12 02:24:20 +00:00
whitelisted [objcmt] When whitelisting the headers we want to modify, allow changing the 2013-12-11 21:39:00 +00:00
with space
Common.h
GC-check-warn-nsalloc.m ARCMT/GC-check-warn-nsalloc.m: don't provide a diag group 2014-05-19 23:48:49 +00:00
GC-check.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
GC-no-arc-runtime.m Define weak and __weak to mean ARC-style weak references, even in MRC. 2015-10-22 18:38:17 +00:00
GC-no-arc-runtime.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
GC-no-finalize-removal.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
GC-no-finalize-removal.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
GC.h
GC.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
GC.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
api.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
api.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
assign-prop-no-arc-runtime.m
assign-prop-no-arc-runtime.m.result
assign-prop-with-arc-runtime.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
assign-prop-with-arc-runtime.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
atautorelease-2.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
atautorelease-2.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
atautorelease-3.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
atautorelease-3.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
atautorelease-check.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
atautorelease.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
atautorelease.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
autoreleases.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
autoreleases.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
block_copy_release.m
block_copy_release.m.result
check-api.m
check-with-pch.m Revert "Revert r241620 and follow-up commits" and move the initialization 2015-07-08 01:00:30 +00:00
check-with-serialized-diag.m
checking-in-arc.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
checking.m Some minor ARC diagnostic improvements. 2015-10-21 18:06:38 +00:00
cxx-checking.mm Fix "regression" caused by updating our notion of POD to better match the C++11 2014-01-11 00:53:35 +00:00
cxx-rewrite.mm Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
cxx-rewrite.mm.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
dealloc.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
dealloc.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
dispatch.m
dispatch.m.result
driver-migrate.m
init.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
init.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
lit.local.cfg
migrate-emit-errors.m
migrate-on-pch-and-module.m Revert "Revert r241620 and follow-up commits" and move the initialization 2015-07-08 01:00:30 +00:00
migrate-plist-output.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
migrate-space-in-path.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
migrate-with-pch.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
migrate.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
no-canceling-bridge-to-bridge-cast.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
nonobjc-to-objc-cast-2.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
nonobjc-to-objc-cast.m Allow (Object *)kMyGlobalCFObj casts without bridging 2015-02-25 20:09:06 +00:00
nonobjc-to-objc-cast.m.result Allow (Object *)kMyGlobalCFObj casts without bridging 2015-02-25 20:09:06 +00:00
objcmt-arc-cf-annotations.m [analyzer] Check for NULL passed to CFAutorelease. 2014-06-21 23:50:40 +00:00
objcmt-arc-cf-annotations.m.result [analyzer] Check for NULL passed to CFAutorelease. 2014-06-21 23:50:40 +00:00
objcmt-atomic-property.m
objcmt-atomic-property.m.result Objective-C migrator: when inferring 'readonly' property of an 2013-12-12 01:02:00 +00:00
objcmt-boxing.m Objective-C modernization. Convert -initWithUTF8String messaging 2014-08-25 20:22:25 +00:00
objcmt-boxing.m.result Objective-C modernization. Convert -initWithUTF8String messaging 2014-08-25 20:22:25 +00:00
objcmt-designated-initializer.m [objcmt] Add a modernization option to infer and suggest designated initializers. 2013-12-10 18:36:49 +00:00
objcmt-designated-initializer.m.result [objcmt] Add a modernization option to infer and suggest designated initializers. 2013-12-10 18:36:49 +00:00
objcmt-instancetype-2.m
objcmt-instancetype-2.m.result
objcmt-instancetype-unnecessary-diff.m [objcmt] Make sure we don't edit the return type to add 'instancetype' if the return type is already that. 2014-05-21 00:24:20 +00:00
objcmt-instancetype.m
objcmt-instancetype.m.result
objcmt-migrate-all.m
objcmt-migrate-all.m.result
objcmt-ns-macros.m [SDK modernizer] Patch to fix type of the typed enums when 2015-03-02 23:58:02 +00:00
objcmt-ns-macros.m.result [SDK modernizer] Patch to fix type of the typed enums when 2015-03-02 23:58:02 +00:00
objcmt-ns-nonatomic-iosonly.m
objcmt-ns-nonatomic-iosonly.m.result Objective-C migrator: when inferring 'readonly' property of an 2013-12-12 01:02:00 +00:00
objcmt-ns-returns-inner-pointer.m
objcmt-ns-returns-inner-pointer.m.result
objcmt-numeric-literals.m
objcmt-numeric-literals.m.result
objcmt-property-availability.m
objcmt-property-availability.m.result
objcmt-property-dot-syntax.m [SDK modernizer PATCH]. Fixes a bug whereby a call to super 2015-03-23 20:52:26 +00:00
objcmt-property-dot-syntax.m.result [SDK modernizer PATCH]. Fixes a bug whereby a call to super 2015-03-23 20:52:26 +00:00
objcmt-property.m [Objective-C SDK modernizer]. Patch to convert setter/getter 2015-04-02 21:36:03 +00:00
objcmt-property.m.result [Objective-C SDK modernizer]. Patch to convert setter/getter 2015-04-02 21:36:03 +00:00
objcmt-protocol-conformance.m ObjectiveC migrator. Fixes a bug when protocol 2013-12-17 01:01:33 +00:00
objcmt-protocol-conformance.m.result ObjectiveC migrator. Fixes a bug when protocol 2013-12-17 01:01:33 +00:00
objcmt-subscripting-literals-in-arc.m
objcmt-subscripting-literals-in-arc.m.result
objcmt-subscripting-literals.m [Edit] Fix issue with tracking what macro argument inputs have been edited. 2015-09-11 20:09:11 +00:00
objcmt-subscripting-literals.m.result [Edit] Fix issue with tracking what macro argument inputs have been edited. 2015-09-11 20:09:11 +00:00
objcmt-subscripting-unavailable.m
objcmt-subscripting-unavailable.m.result
objcmt-undefined-ns-macros.m Objective-C SDK modernization. When modernizing to 2014-10-07 19:01:46 +00:00
objcmt-undefined-ns-macros.m.result Objective-C SDK modernizer. When modernizing an enum to 2014-12-10 18:25:24 +00:00
objcmt-with-pch.m Revert "Revert r241620 and follow-up commits" and move the initialization 2015-07-08 01:00:30 +00:00
objcmt-with-pch.m.result Revert "Revert r241620 and follow-up commits" and move the initialization 2015-07-08 01:00:30 +00:00
protected-scope.m Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
protected-scope.m.result Remove all DISABLE lines from tests 2013-12-08 21:12:19 +00:00
releases-driver.m
releases-driver.m.result
releases.m
releases.m.result
remove-dealloc-method.m
remove-dealloc-method.m.result
remove-dealloc-zerouts.m
remove-dealloc-zerouts.m.result
remove-statements.m
remove-statements.m.result
retains.m
retains.m.result
rewrite-block-var.m
rewrite-block-var.m.result
safe-arc-assign.m
safe-arc-assign.m.result
verify.m
with-arc-mode-modify.m
with-arc-mode-modify.m.result