blob: 37b406ef8520218632be011f0a080775ed18a185 [file] [log] [blame]
Daniel Dunbard7f7d082010-06-29 22:00:45 +00001// RUN: %clang_cc1 -triple x86_64 -emit-llvm -o - %s | FileCheck %s
2
3struct 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: define void @f0
16void 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-NOT: objc_msgSend
31// CHECK: }
32}