[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / CodeGenObjCXX / auto-release-result-assert.mm
blobf3d5f4d413f704684718440a8e9f11a829f3d491
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fblocks -fobjc-arc -o - %s | FileCheck %s
3 // CHECK-LABEL: define{{.*}} ptr @_Z4foo1i(
4 // CHECK: %[[CALL:[a-z0-9]+]] = call noundef ptr @_Z4foo0i
5 // CHECK: ret ptr %[[CALL]]
7 // CHECK-LABEL: define{{.*}} ptr @_ZN2S22m1Ev(
8 // CHECK: %[[CALL:[a-z0-9]+]] = call noundef ptr @_Z4foo0i
9 // CHECK: ret ptr %[[CALL]]
11 // CHECK-LABEL: define internal noundef ptr @Block1_block_invoke(
12 // CHECK: %[[CALL:[a-z0-9]+]] = call noundef ptr @_Z4foo0i
13 // CHECK: ret ptr %[[CALL]]
15 struct S1;
17 typedef __attribute__((NSObject)) struct __attribute__((objc_bridge(id))) S1 * S1Ref;
19 S1Ref foo0(int);
21 struct S2 {
22   S1Ref m1();
25 S1Ref foo1(int a) {
26   return foo0(a);
29 S1Ref S2::m1() {
30   return foo0(0);
33 S1Ref (^Block1)(void) = ^{
34   return foo0(0);