llvm-project

Форк
0
/
assign-prop-with-arc-runtime.m 
72 строки · 1.7 Кб
1
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -fobjc-runtime-has-weak -x objective-c %s.result
2
// RUN: arcmt-test --args -triple x86_64-apple-macosx10.7 -fsyntax-only %s > %t
3
// RUN: diff %t %s.result
4

5
#include "Common.h"
6

7
__attribute__((objc_arc_weak_reference_unavailable))
8
@interface WeakOptOut
9
@end
10

11
@class _NSCachedAttributedString;
12
typedef _NSCachedAttributedString *BadClassForWeak;
13

14
@class Forw;
15

16
@interface Foo : NSObject {
17
  Foo *x, *w, *q1, *q2;
18
  WeakOptOut *oo;
19
  BadClassForWeak bcw;
20
  id not_safe1;
21
  NSObject *not_safe2;
22
  Forw *not_safe3;
23
  Foo *assign_plus1;
24
}
25
@property (readonly) Foo *x;
26
@property (assign) Foo *w;
27
@property Foo *q1, *q2;
28
@property (assign) WeakOptOut *oo;
29
@property (assign) BadClassForWeak bcw;
30
@property (assign) id not_safe1;
31
@property () NSObject *not_safe2;
32
@property Forw *not_safe3;
33
@property (readonly) Foo *assign_plus1;
34
@property (readonly) Foo *assign_plus2;
35
@property (readonly) Foo *assign_plus3;
36

37
@property (assign) Foo *no_user_ivar1;
38
@property (readonly) Foo *no_user_ivar2;
39

40
@property (retain) id def1;
41
@property (atomic,retain) id def2;
42
@property (retain,atomic) id def3;
43

44
@end
45

46
@implementation Foo
47
@synthesize x,w,q1,q2,oo,bcw,not_safe1,not_safe2,not_safe3;
48
@synthesize no_user_ivar1, no_user_ivar2;
49
@synthesize assign_plus1, assign_plus2, assign_plus3;
50
@synthesize def1, def2, def3;
51

52
-(void)test:(Foo *)parm {
53
  assign_plus1 = [[Foo alloc] init];
54
  assign_plus2 = [Foo new];
55
  assign_plus3 = [parm retain];
56
}
57
@end
58

59
@interface TestExt
60
@property (retain,readonly) TestExt *x1;
61
@property (readonly) TestExt *x2;
62
@end
63

64
@interface TestExt()
65
@property (retain,readwrite) TestExt *x1;
66
@property (readwrite) TestExt *x2;
67
@property (retain) TestExt *x3;
68
@end
69

70
@implementation TestExt
71
@synthesize x1, x2, x3;
72
@end
73

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

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

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

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