1 | ; RUN: %clang_cc1 -Os -emit-llvm -fobjc-arc -o - %s | FileCheck %s |
2 | |
3 | target triple = "x86_64-apple-darwin10" |
4 | |
5 | declare i8* @llvm.objc.retain(i8*) |
6 | declare void @llvm.objc.release(i8*) |
7 | |
8 | ; CHECK-LABEL: define void @test( |
9 | ; CHECK-NOT: @objc_ |
10 | ; CHECK: } |
11 | define void @test(i8* %x, i1* %p) nounwind { |
12 | entry: |
13 | br label %loop |
14 | |
15 | loop: |
16 | call i8* @llvm.objc.retain(i8* %x) |
17 | %q = load i1, i1* %p |
18 | br i1 %q, label %loop.more, label %exit |
19 | |
20 | loop.more: |
21 | call void @llvm.objc.release(i8* %x) |
22 | br label %loop |
23 | |
24 | exit: |
25 | call void @llvm.objc.release(i8* %x) |
26 | ret void |
27 | } |
28 | |