blob: 7d0c06f7435341b15c111bf0b1260737db014748 [file] [log] [blame]
John McCall5fb5df92012-06-20 06:18:46 +00001// RUN: %clang_cc1 -triple x86_64 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
Daniel Dunbarc85ea8e2010-06-29 22:00:45 +00002
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//
Stephen Lin43622612013-08-15 06:47:53 +000015// CHECK-LABEL: define void @f0
Daniel Dunbarc85ea8e2010-06-29 22:00:45 +000016void 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
Daniel Dunbar8c94ffe2010-06-29 22:44:21 +000030// CHECK: objc_msgSend
31// CHECK: objc_msgSend
32 _Complex int l4 = (a.x1 += 1);
33
Daniel Dunbarc85ea8e2010-06-29 22:00:45 +000034// CHECK-NOT: objc_msgSend
35// CHECK: }
36}