From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- clang/test/CodeGenObjC/arc-block-copy-escape.m | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 clang/test/CodeGenObjC/arc-block-copy-escape.m (limited to 'clang/test/CodeGenObjC/arc-block-copy-escape.m') diff --git a/clang/test/CodeGenObjC/arc-block-copy-escape.m b/clang/test/CodeGenObjC/arc-block-copy-escape.m new file mode 100644 index 0000000..15c0d1d --- /dev/null +++ b/clang/test/CodeGenObjC/arc-block-copy-escape.m @@ -0,0 +1,22 @@ +// RUN: %clang_cc1 -fobjc-arc -fblocks -emit-llvm %s -o - | FileCheck %s + +typedef void (^block_t)(void); +void use_block(block_t); +void use_int(int); + +// rdar://problem/10211676 + +void test0(int i) { + block_t block = ^{ use_int(i); }; + // CHECK: define void @test0( + // CHECK: call i8* @objc_retainBlock(i8* {{%.*}}) nounwind, !clang.arc.copy_on_escape + // CHECK: ret void +} + +void test1(int i) { + id block = ^{ use_int(i); }; + // CHECK: define void @test1( + // CHECK: call i8* @objc_retainBlock(i8* {{%.*}}) nounwind + // CHECK-NOT: !clang.arc.copy_on_escape + // CHECK: ret void +} -- cgit v1.2.3