150
|
1 // RUN: %clang_cc1 -triple x86_64 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
|
|
2
|
|
3 struct s0 {
|
|
4 int x;
|
|
5 };
|
|
6
|
|
7 @interface C0
|
|
8 @property int x0;
|
|
9 @property _Complex int x1;
|
|
10 @property struct s0 x2;
|
|
11 @end
|
|
12
|
|
13 // Check that we get exactly the message sends we expect, and no more.
|
|
14 //
|
|
15 // CHECK-LABEL: define void @f0
|
|
16 void f0(C0 *a) {
|
|
17 // CHECK: objc_msgSend
|
|
18 int l0 = (a.x0 = 1);
|
|
19
|
|
20 // CHECK: objc_msgSend
|
|
21 _Complex int l1 = (a.x1 = 1);
|
|
22
|
|
23 // CHECK: objc_msgSend
|
|
24 struct s0 l2 = (a.x2 = (struct s0) { 1 });
|
|
25
|
|
26 // CHECK: objc_msgSend
|
|
27 // CHECK: objc_msgSend
|
|
28 int l3 = (a.x0 += 1);
|
|
29
|
|
30 // CHECK: objc_msgSend
|
|
31 // CHECK: objc_msgSend
|
|
32 _Complex int l4 = (a.x1 += 1);
|
|
33
|
|
34 // CHECK-NOT: objc_msgSend
|
|
35 // CHECK: }
|
|
36 }
|