xref: /aosp_15_r20/external/clang/test/CodeGenObjCXX/auto-release-result-assert.mm (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fblocks -fobjc-arc -o - %s | FileCheck %s
2*67e74705SXin Li
3*67e74705SXin Li// CHECK-LABEL: define %struct.S1* @_Z4foo1i(
4*67e74705SXin Li// CHECK: %[[CALL:[a-z0-9]+]] = call %struct.S1* @_Z4foo0i
5*67e74705SXin Li// CHECK: ret %struct.S1* %[[CALL]]
6*67e74705SXin Li
7*67e74705SXin Li// CHECK-LABEL: define %struct.S1* @_ZN2S22m1Ev(
8*67e74705SXin Li// CHECK: %[[CALL:[a-z0-9]+]] = call %struct.S1* @_Z4foo0i
9*67e74705SXin Li// CHECK: ret %struct.S1* %[[CALL]]
10*67e74705SXin Li
11*67e74705SXin Li// CHECK-LABEL: define internal %struct.S1* @Block1_block_invoke(
12*67e74705SXin Li// CHECK: %[[CALL:[a-z0-9]+]] = call %struct.S1* @_Z4foo0i
13*67e74705SXin Li// CHECK: ret %struct.S1* %[[CALL]]
14*67e74705SXin Li
15*67e74705SXin Listruct S1;
16*67e74705SXin Li
17*67e74705SXin Litypedef __attribute__((NSObject)) struct __attribute__((objc_bridge(id))) S1 * S1Ref;
18*67e74705SXin Li
19*67e74705SXin LiS1Ref foo0(int);
20*67e74705SXin Li
21*67e74705SXin Listruct S2 {
22*67e74705SXin Li  S1Ref m1();
23*67e74705SXin Li};
24*67e74705SXin Li
25*67e74705SXin LiS1Ref foo1(int a) {
26*67e74705SXin Li  return foo0(a);
27*67e74705SXin Li}
28*67e74705SXin Li
29*67e74705SXin LiS1Ref S2::m1() {
30*67e74705SXin Li  return foo0(0);
31*67e74705SXin Li}
32*67e74705SXin Li
33*67e74705SXin LiS1Ref (^Block1)(void) = ^{
34*67e74705SXin Li  return foo0(0);
35*67e74705SXin Li};
36