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 test: add explicit targets for some tests 2016-05-30 16:36:48 +00:00
2010-02-01-utf16-with-null.m CodeGen: try harder to make the CFString structure RW 2016-07-29 19:15:51 +00:00
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 CodeGen: correct arguments for NSFastEnumeration 2017-09-08 23:41:17 +00:00
arc-arm.m [ObjC] Use consistent comment style in inline asm 2017-08-21 09:54:46 +00:00
arc-block-copy-escape.m
arc-blocks.m [CodeGen][ObjC] Emit @objc_retain at -O0 for variables captured by 2017-05-09 01:20:05 +00:00
arc-bridged-cast.m [Sema][ObjC] Preserve syntactic sugar when removing 2017-10-10 01:24:33 +00:00
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 Only enable AddDiscriminator pass when -fdebug-info-for-profiling is true 2017-02-21 20:36:21 +00:00
arc-linetable.m
arc-literals.m Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
arc-loadweakretained-release.m
arc-no-arc-exceptions.m Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
arc-no-runtime.m
arc-precise-lifetime.m Update for lifetime intrinsic signature change 2017-04-10 20:18:45 +00:00
arc-property.m [ObjC] Pick a 'readwrite' property when synthesizing ambiguous 2017-07-13 11:06:22 +00:00
arc-related-result-type.m
arc-ternary-op.m Revert r300287. 2017-04-14 01:00:03 +00:00
arc-unbridged-cast.m
arc-unopt.m
arc-unoptimized-byref-var.m
arc-unsafeclaim.m Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
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 Update use of llvm::CallingConv:X86_64_Win64 after LLVM commit r308208 2017-07-17 20:05:56 +00:00
attr-exception.m [CodeGen] Compute the objc EH vtable address point using inbounds GEP. 2017-11-17 19:46:47 +00:00
attr-minsize.m
attr-noreturn.m
attr-objc-runtime-visible.m [Objective-C] Introduce objc_runtime_visible attribute. 2016-04-01 23:23:52 +00:00
attr-strong.c
auto-property-synthesize-protocol.m
autorelease.m
availability-cf-link-guard.m IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
availability-check.m [ObjC][CodeGen] CodeGen support for @available. 2017-02-23 21:08:08 +00:00
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 DebugInfo: pass alignment value only if it was forced 2016-10-20 00:13:19 +00:00
block-byref-variable-layout.m
block-over-align.m
block-ptr-type-crash.m [CodeGen][ObjC] Avoid asserting on block pointer types in 2017-02-01 17:37:28 +00:00
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 CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
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 CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
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 DebugInfo: pass alignment value only if it was forced 2016-10-20 00:13:19 +00:00
debug-info-blocks.m [CGBlocks] Improve line info in backtraces containing *_helper_block 2017-10-26 21:27:24 +00:00
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 DebugInfo: pass alignment value only if it was forced 2016-10-20 00:13:19 +00:00
debug-info-ivars-indirect.m
debug-info-ivars-private.m DebugInfo: pass alignment value only if it was forced 2016-10-20 00:13:19 +00:00
debug-info-ivars.m DebugInfo: pass alignment value only if it was forced 2016-10-20 00:13:19 +00:00
debug-info-lifetime-crash.m
debug-info-linkagename.m
debug-info-nested-blocks.m
debug-info-nodebug.m Allow 'nodebug' on local variables. 2016-06-16 00:42:36 +00:00
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 Update to match LLVM changes for PR27284. 2016-04-15 15:55:45 +00:00
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 [ObjC] Mark loads from __NSArray0 and __NSDictionary0 as invariant.load. 2017-04-17 15:21:55 +00:00
encode-cstyle-method.m CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
encode-test-2.m
encode-test-3.m
encode-test-4.m
encode-test-5.m
encode-test-6.m CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
encode-test.m Handle ObjCEncodeExpr in extractStringLiteralCharacter. 2017-01-31 02:31:39 +00:00
exceptions-asm-attribute.m tests: silence -Wobjc-root-class warnings 2017-06-03 16:18:13 +00:00
exceptions-nonfragile.m
exceptions.m Update for lifetime intrinsic signature change 2017-04-10 20:18:45 +00:00
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 CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
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 IRGen: Add optnone attribute on function during O0 2017-05-29 05:38:20 +00:00
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 test: add missing triple to test 2016-07-17 22:54:42 +00:00
hidden.m
id-isa-codegen.m
illegal-UTF8.m
image-info.m CodeGen: fix section names for different file formats 2017-06-03 16:18:09 +00:00
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 CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
ivar-layout-array0-struct.m
ivar-layout-flexible-array.m [CodeGen] Add support for IncompleteArrayType in Obj-C ivars. 2017-10-27 00:56:23 +00:00
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 [CodeGen][ObjC] Build the global block structure before emitting the 2017-09-22 21:32:06 +00:00
mangle-blocks.m [CodeGen][ObjC] Build the global block structure before emitting the 2017-09-22 21:32:06 +00:00
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 ObjC Class Property: don't emit class properties on old deployment targets. 2016-04-19 19:05:03 +00:00
metadata-symbols-32.m Switch CGObjCMac to use ConstantInitBuilder. Whew. 2016-11-30 02:39:18 +00:00
metadata-symbols-64.m CodeGen: fix section names for different file formats 2017-06-03 16:18:09 +00:00
metadata_symbols.m tests: silence -Wobjc-root-class warnings 2017-06-03 16:18:13 +00:00
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 tests: silence -Wobjc-root-class warnings 2017-06-03 16:18:13 +00:00
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 Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
nsvalue-objc-boxable-ios.m Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
nsvalue-objc-boxable-mac-arc.m Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
nsvalue-objc-boxable-mac.m Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
null-objc-empty-vtable.m
nullptr-assert.m Add a lit test for PR31374 2016-12-19 02:55:53 +00:00
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 CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
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 Cleanup the handling of noinline function attributes, -fno-inline, 2016-12-23 01:24:49 +00:00
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 CodeGen: make the type match the comment for a libcall 2017-06-17 17:30:31 +00:00
object-incr-decr-1.m
objfw.m
optimize-ivar-offset-load.m
optimized-setter-ios-device.m
optimized-setter.m
os_log.m Fix one more check string after r315045. 2017-10-06 08:19:31 +00:00
overloadable.m
parameterized_classes.m [CodeGen] Fix assertion failure in EmitCallArg. 2017-06-28 00:42:48 +00:00
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 [ObjC] Remove _Atomic from return type and parameter type of 2016-05-26 00:37:30 +00:00
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 CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
property-ref-cast-to-void.m
property-section-attribute.m
property-setter-attr.m
property-type-mismatch.m
property.m
protocol-comdat.m CodeGen: handle missed case of COMDAT handling 2017-06-29 00:54:44 +00:00
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 CodeGen: mark ObjC cstring literals as unnamed_addr 2016-09-18 16:12:14 +00:00
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 CodeGen: be more conservative about setting section 2016-10-25 21:43:28 +00:00
sections.m CodeGen: fix section names for different file formats 2017-06-03 16:18:09 +00:00
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 [objc] Don't require null-check and don't emit memset when result is ignored for struct-returning method calls [clang part] 2017-06-30 16:28:15 +00:00
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 CodeGen: try harder to make the CFString structure RW 2016-07-29 19:15:51 +00:00
terminate.m
try.m
ubsan-array-bounds.m [ubsan] Disable bounds-check for flexible array ivars 2016-10-04 20:36:04 +00:00
ubsan-bool.m Retry: [ubsan] Detect UB loads from bitfields 2017-03-09 16:06:27 +00:00
ubsan-nonnull-and-nullability.m [ubsan] Improve diagnostics for return value checks (clang) 2017-06-23 21:32:38 +00:00
ubsan-nonnull.m [ubsan] Extend the nonnull arg check to ObjC 2017-03-06 05:28:22 +00:00
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 [ARC] Ignore qualifiers in copy-restore expressions 2016-10-03 15:29:22 +00:00
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