llvm-project

Форк
0
36 строк · 711.0 Байт
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
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.