llvm-project/clang/test/ARCMT
Akira Hatanaka 7275da0f2e [ObjC] Allow declaring __strong pointer fields in structs in Objective-C
ARC mode.

Declaring __strong pointer fields in structs was not allowed in
Objective-C ARC until now because that would make the struct non-trivial
to default-initialize, copy/move, and destroy, which is not something C
was designed to do. This patch lifts that restriction.

Special functions for non-trivial C structs are synthesized that are
needed to default-initialize, copy/move, and destroy the structs and
manage the ownership of the objects the __strong pointer fields point
to. Non-trivial structs passed to functions are destructed in the callee
function.

rdar://problem/33599681

Differential Revision: https://reviews.llvm.org/D41228

llvm-svn: 326307
2018-02-28 07:15:55 +00:00
..
Inputs Re-apply "test: Use add_lit_testsuites so that subsets of tests can be specified" 2016-07-05 17:54:40 +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 [test/objcmt] Add a follow-up test case for r275600. 2016-07-15 20:40:24 +00:00
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
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
GC-no-finalize-removal.m
GC-no-finalize-removal.m.result
GC.h
GC.m
GC.m.result
api.m
api.m.result
assign-prop-no-arc-runtime.m
assign-prop-no-arc-runtime.m.result
assign-prop-with-arc-runtime.m
assign-prop-with-arc-runtime.m.result
atautorelease-2.m
atautorelease-2.m.result
atautorelease-3.m
atautorelease-3.m.result
atautorelease-check.m
atautorelease.m
atautorelease.m.result
autoreleases.m
autoreleases.m.result
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
checking.m [ObjC] Allow declaring __strong pointer fields in structs in Objective-C 2018-02-28 07:15:55 +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
cxx-rewrite.mm.result
dealloc.m
dealloc.m.result
dispatch.m
dispatch.m.result
driver-migrate.m
init.m
init.m.result
lit.local.cfg [test] Port clang tests to canonicalized booleans 2017-01-25 13:11:45 +00:00
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
migrate-space-in-path.m Re-apply "test: Use add_lit_testsuites so that subsets of tests can be specified" 2016-07-05 17:54:40 +00:00
migrate-with-pch.m
migrate.m
no-canceling-bridge-to-bridge-cast.m
nonobjc-to-objc-cast-2.m
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-invalid-code.mm [arcmt/objcmt] Fix ParentMap crash with invalid code. 2016-07-14 20:21:16 +00:00
objcmt-invalid-code.mm.result [arcmt/objcmt] Fix ParentMap crash with invalid code. 2016-07-14 20:21:16 +00:00
objcmt-migrate-all.m
objcmt-migrate-all.m.result
objcmt-ns-enum-crash.m [objcmt] Fix a buffer overflow crash than can occur while modernizing enums. 2016-07-15 19:22:34 +00:00
objcmt-ns-enum-crash.m.result [objcmt] Fix a buffer overflow crash than can occur while modernizing enums. 2016-07-15 19:22:34 +00:00
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 [objcmt] Fix a buffer overflow crash than can occur while modernizing enums. 2016-07-15 19:22:34 +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
protected-scope.m.result
releases-driver.m Avoid assumption that lit tests are writable. NFC 2018-01-08 15:05:01 +00:00
releases-driver.m.result Avoid assumption that lit tests are writable. NFC 2018-01-08 15:05:01 +00:00
releases.m
releases.m.result
remap-applying.c clang/test/ARCMT/remap-applying.c: Use %/s on the command line of echo(1). 2017-04-28 05:02:52 +00:00
remap-applying.c.result clang/test/ARCMT/remap-applying.c: Use %/s on the command line of echo(1). 2017-04-28 05:02:52 +00:00
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 Avoid assumption that lit tests are writable. NFC 2018-01-08 15:05:01 +00:00
with-arc-mode-modify.m.result Avoid assumption that lit tests are writable. NFC 2018-01-08 15:05:01 +00:00