brintos

brintos / llvm-project-archived public Read only

0
0
Text · 793 B · 3bb3dfb Raw
23 lines · plain
1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fblocks -fobjc-arc -o - %s | FileCheck %s2 3@interface Test04- (id) self;5@end6void test0(Test0 *val) {7  Test0 *x = [val self];8 9// CHECK-LABEL:    define{{.*}} void @test0(10// CHECK:      [[VAL:%.*]] = alloca ptr11// CHECK-NEXT: [[X:%.*]] = alloca ptr12// CHECK-NEXT: store ptr null13// CHECK-NEXT: call void @llvm.objc.storeStrong(14// CHECK-NEXT: load ptr, ptr [[VAL]],15// CHECK-NEXT: load16// CHECK-NEXT: [[T0:%.*]] = call ptr17// CHECK-NEXT: [[T1:%.*]] = notail call ptr @llvm.objc.retainAutoreleasedReturnValue(ptr [[T0]])18// CHECK-NEXT: store ptr [[T1]], ptr [[X]]19// CHECK-NEXT: call void @llvm.objc.storeStrong(ptr [[X]], ptr null)20// CHECK-NEXT: call void @llvm.objc.storeStrong(ptr [[VAL]], ptr null)21// CHECK-NEXT: ret void22}23