hanchenye-llvm-project/clang/test/CodeGenObjC
Akira Hatanaka cb6a933c9b [CodeGen][ObjC] Make block copy/dispose helper functions exception-safe.
When an exception is thrown in a block copy helper function, captured
objects that have previously been copied should be destructed or
released. Similarly, captured objects that are yet to be released should
be released when an exception is thrown in a dispose helper function.

rdar://problem/42410255

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

llvm-svn: 338041
2018-07-26 16:51:21 +00:00
..
Inputs Check that a field is not annotated with attribute "unavailable" before 2018-03-13 23:37:51 +00:00
2007-04-03-ObjcEH.m
2007-05-02-Strong.m
2007-10-18-ProDescriptor.m
2007-10-23-GC-WriteBarrier.m
2008-08-25-incompatible-cond-expr.m
2008-10-3-EhValue.m
2008-10-23-invalid-icmp.m
2008-11-12-Metadata.m
2008-11-24-ConstCFStrings.m
2008-11-25-Blocks.m
2009-01-21-invalid-debug-info.m
2009-01-26-WriteBarrier-2.m
2009-02-05-VolatileProp.m
2009-08-05-utf16.m
2010-02-01-utf16-with-null.m
2010-02-09-DbgSelf.m
2010-02-15-Dbg-MethodStart.m
2010-02-23-DbgInheritance.m
2010-03-17-StructRef.m
2011-03-08-IVarLookup.m
NSFastEnumeration.m
arc-arm.m
arc-block-copy-escape.m
arc-blocks.m
arc-bridged-cast.m
arc-captured-32bit-block-var-layout-2.m
arc-captured-32bit-block-var-layout.m
arc-captured-block-var-inlined-layout.m
arc-captured-block-var-layout.m
arc-compound-stmt.m
arc-cond-stmt.m
arc-exceptions.m
arc-foreach.m Change memcpy/memove/memset to have dest and source alignment attributes (Step 1). 2018-01-19 17:12:54 +00:00
arc-i386.m
arc-ivar-layout.m
arc-linetable-autorelease.m
arc-linetable.m
arc-literals.m
arc-loadweakretained-release.m
arc-no-arc-exceptions.m
arc-no-runtime.m
arc-precise-lifetime.m
arc-property.m
arc-related-result-type.m
arc-ternary-op.m
arc-unbridged-cast.m
arc-unopt.m
arc-unoptimized-byref-var.m
arc-unsafeclaim.m
arc-weak-property.m
arc-weak.m
arc-with-atthrow.m
arc.ll
arc.m [CodeGen] Try to not call a dtor after lifetime.end 2018-03-10 01:11:17 +00:00
arm-atomic-scalar-setter-getter.m
arm64-int32-ivar.m
assign.m
atomic-aggregate-property.m
attr-availability.m
attr-callconv.m
attr-exception.m
attr-minsize.m
attr-noreturn.m
attr-objc-runtime-visible.m
attr-strong.c
auto-property-synthesize-protocol.m
autorelease.m
availability-cf-link-guard.m
availability-check.m
availability-dso-local.m Add a testcase for PR36268. 2018-02-08 01:17:26 +00:00
bitfield-1.m
bitfield-access.m
bitfield-gnu.m
bitfield-ivar-metadata.m
bitfield-ivar-offsets.m
bitfield_encoding.m
block-6.m
block-byref-debuginfo.m
block-byref-variable-layout.m
block-over-align.m
block-ptr-type-crash.m
block-var-layout.m
blocks-1.m
blocks-2.m
blocks-3.m
blocks-4.m
blocks-5.m
blocks-ivar-debug.m
blocks.m [CodeGen][ObjC] Make block copy/dispose helper functions exception-safe. 2018-07-26 16:51:21 +00:00
boxing.m
builtin-memfns.m Change memcpy/memove/memset to have dest and source alignment attributes (Step 1). 2018-01-19 17:12:54 +00:00
builtins.m
catch-lexical-block.m
category-class.m
category-super-class-meth.m
class-getter-dotsyntax.m
class-type.m
compatibility-alias.m
complex-double-abi.m
complex-property.m
compound-literal-property-access.m
constant-string-class-1.m
constant-string-class.m
constant-strings.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
continuation-class.m
deadcode_strip_used_var.m
debug-info-block-helper.m
debug-info-block-line.m
debug-info-block-type.m
debug-info-blocks.m
debug-info-category.m [DebugInfo] Emit ObjC methods as part of interface 2018-06-27 17:31:59 +00:00
debug-info-class-extension.m
debug-info-class-extension2.m
debug-info-class-extension3.m
debug-info-crash-2.m
debug-info-crash.m
debug-info-default-synth-ivar.m
debug-info-fwddecl.m
debug-info-getter-name.m
debug-info-id-with-protocol.m
debug-info-impl.m
debug-info-instancetype.m
debug-info-ivars-extension.m
debug-info-ivars-indirect.m
debug-info-ivars-private.m
debug-info-ivars.m
debug-info-lifetime-crash.m
debug-info-linkagename.m
debug-info-nested-blocks.m
debug-info-nodebug.m
debug-info-property-accessors.m
debug-info-property-class-extension.m
debug-info-property.m
debug-info-property2.m
debug-info-property3.m
debug-info-property4.m
debug-info-property5.m
debug-info-pubtypes.m
debug-info-selector.m
debug-info-self.m
debug-info-static-var.m
debug-info-synthesis.m
debug-info-variadic-method.m
debug-property-synth.m
debuginfo-properties.m
default-property-synthesis.m
designated-initializers.m
disable-tail-call-escaping-block.m Add an option to disable tail-call optimization for escaping blocks. 2018-03-02 01:53:15 +00:00
dllstorage.m [FileCheck] Add -allow-deprecated-dag-overlap to failing clang tests 2018-07-11 20:26:20 +00:00
dot-syntax-1.m
dot-syntax-2.m
dot-syntax.m
empty-collection-literals.m
encode-cstyle-method.m
encode-test-2.m
encode-test-3.m
encode-test-4.m
encode-test-5.m
encode-test-6.m
encode-test.m
exceptions-asm-attribute.m
exceptions-nonfragile.m
exceptions.m
extended-block-signature-encode.m
externally-initialized-selectors.m
for-in.m
forward-class-impl-metadata.m
forward-decl-param.m
forward-declare-protocol-gnu.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
forward-protocol-metadata-symbols.m CodeGen: use `llvm.used` for ObjC protocols 2018-01-23 19:35:51 +00:00
fp2ret.m
fpret.m
fragile-arc.m
function-decay.m
gc-weak-attribute.m
gc.m
getter-property-mismatch.m
getter-property-type-mismatch.m
gnu-empty-protocol-v3.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
gnu-exceptions.m
gnu-init.m [objc-gnu] Fix test. 2018-05-22 10:13:14 +00:00
gnustep2-category.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
gnustep2-class.m NFC - Fix typo in test/CodeGenObjC/gnustep2-class.m 2018-07-04 11:26:09 +00:00
gnustep2-ivar-offset.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
gnustep2-proto.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
hidden-visibility.m
hidden.m
id-isa-codegen.m
illegal-UTF8.m
image-info.m
implicit-objc_msgSend.m
implicit-property.m
instance-method-metadata.m
interface-layout-64.m
interface.m
ivar-base-as-invariant-load.m
ivar-invariant.m
ivar-layout-64-bitfields.m
ivar-layout-64.m
ivar-layout-array0-struct.m
ivar-layout-flexible-array.m
ivar-layout-no-optimize.m
ivar-layout-nonfragile-abi2.m
ivar-type-encoding.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
ivars.m
layout-bitfield-crash.m
link-errors.m
local-static-block.m
mangle-blocks.m
message-arrays.m
messages-2.m Change memcpy/memove/memset to have dest and source alignment attributes (Step 1). 2018-01-19 17:12:54 +00:00
messages.m
metadata-class-properties.m
metadata-symbols-32.m
metadata-symbols-64.m
metadata_symbols.m
misc-atomic-property.m
mrc-weak.m
mrr-autorelease.m
mrr-captured-block-var-inlined-layout.m
nested-rethrow.m
newproperty-nested-synthesis-1.m
next-objc-dispatch.m
no-category-class.m
no-sanitize.m [Blocks] Inherit sanitizer options from parent decl 2017-12-08 02:47:58 +00:00
no-vararg-messaging.m
noescape.m [CodeGen][ObjC] Make copying and disposing of a non-escaping block 2018-07-20 17:10:32 +00:00
non-lazy-classes.m
nonlazy-msgSend.m
nontrivial-c-struct-exception.m [ObjC] Allow declaring __weak pointer fields in C structs in ARC. 2018-03-19 17:38:40 +00:00
nontrivial-c-struct-func-name-collision.m [ObjC] Allow declaring __strong pointer fields in structs in Objective-C 2018-02-28 07:15:55 +00:00
ns-constant-strings.m
ns_consume_null_check.m
nsvalue-objc-boxable-ios-arc.m
nsvalue-objc-boxable-ios.m
nsvalue-objc-boxable-mac-arc.m
nsvalue-objc-boxable-mac.m
null-objc-empty-vtable.m
nullptr-assert.m
objc-align.m
objc-arc-container-subscripting.m
objc-asm-attribute-neg-test.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
objc-asm-attribute-test.m
objc-assign-ivar.m
objc-container-subscripting-1.m [CodeGen] Ignore OpaqueValueExprs that are unique references to their 2018-03-20 01:47:58 +00:00
objc-container-subscripting.m
objc-dictionary-literal.m
objc-fixed-enum.m
objc-gc-aggr-assign.m
objc-literal-debugger-test.m
objc-literal-tests.m
objc-non-trivial-struct-nrvo.m Generalize NRVO to cover C structs. 2018-03-29 17:56:24 +00:00
objc-read-weak-byref.m
objc-runtime-name.m [ObjC] Use the name specified by objc_runtime_name instead of the class 2018-04-03 22:50:16 +00:00
objc2-assign-global.m
objc2-ivar-assign.m
objc2-legacy-dispatch.m
objc2-new-gc-api-strongcast.m
objc2-no-strong-cast.m
objc2-no-write-barrier.m
objc2-nonfragile-abi-impl.m
objc2-property-encode.m
objc2-protocol-enc.m
objc2-protocol-metadata.m
objc2-retain-codegen.m
objc2-strong-cast-1.m
objc2-strong-cast-block-import.m
objc2-strong-cast.m
objc2-weak-assign.m
objc2-weak-block-call.m
objc2-weak-compare.m
objc2-weak-import-attribute.m
objc2-weak-ivar-debug.m
objc2-weak-ivar.m
objc2-write-barrier-2.m
objc2-write-barrier-3.m
objc2-write-barrier-4.m
objc2-write-barrier-5.m
objc2-write-barrier.m
objc_copyStruct.m
object-incr-decr-1.m
objfw.m
optimize-ivar-offset-load.m
optimized-setter-ios-device.m
optimized-setter.m
os_log.m
overloadable.m
parameterized_classes.m
personality.m [CodeGen] Always use MSVC personality for windows-msvc targets 2018-06-08 00:41:01 +00:00
predefined-expr.m
private-extern-selector-reference.m
prop-metadata-gnu.m
property-aggregate.m
property-agrr-getter.m
property-array-type.m
property-atomic-bool.m
property-category-impl.m
property-complex.m
property-dbg.m
property-getter-dot-syntax.m
property-incr-decr-1.m
property-list-in-class.m
property-list-in-extension.m
property-ref-cast-to-void.m
property-section-attribute.m
property-setter-attr.m
property-type-mismatch.m
property.m
protocol-comdat.m
protocol-in-extended-class.m
protocol-property-synth.m
protocols-lazy.m
protocols.m
rdr-6732143-dangling-block-reference.m
related-result-type.m
reorder-synthesized-ivars.m
return-objc-object.mm
runtime-abi-match.m [test] Fix run line to use correct triple 2018-05-18 21:59:29 +00:00
runtime-fns.m
section-name.m
sections.m
sel-as-builtin-type.m
selector-ref-invariance.m
simplify-exceptions.mm
stand-alone-implementation.m
stret-1.m Change memcpy/memove/memset to have dest and source alignment attributes (Step 1). 2018-01-19 17:12:54 +00:00
stret-lifetime.m
stret.m
stret_lookup.m
strong-in-c-struct.m [CodeGen] Fix a crash that occurs when a non-trivial C struct with a 2018-04-16 20:23:52 +00:00
super-classmethod-category.m
super-dotsyntax-property.m
super-dotsyntax-struct-property.m
super-message-fragileabi.m
synchronized.m
synthesize_ivar-cont-class.m
synthesize_ivar.m
tentative-cfconstantstring.m
terminate.m
try.m
ubsan-array-bounds.m
ubsan-bool.m
ubsan-nonnull-and-nullability.m
ubsan-nonnull.m
ubsan-nullability.m [ubsan] Relax nullability-return for blocks with deduced types 2018-06-26 02:50:04 +00:00
undefined-protocol.m
undefined-protocol2.m
unname-bf-metadata.m
unoptimized-setter.m
unqual-copy-restore.m
variadic-sends.m
weak-in-c-struct.m [ObjC] Allow declaring __weak pointer fields in C structs in ARC. 2018-03-19 17:38:40 +00:00
weak-metaclass-visibility.m
x86_64-struct-return-gc.m