xref: /llvm-project/clang/tools/clang-fuzzer/corpus_examples/objc/BasicClass.m (revision e5ecba4f53e77210c960606b4a3b5a411a4d5823)
1*e5ecba4fSDavid Goldman@interface RootObject
2*e5ecba4fSDavid Goldman@end
3*e5ecba4fSDavid Goldman
4*e5ecba4fSDavid Goldman@interface BasicClass : RootObject {
5*e5ecba4fSDavid Goldman  int _foo;
6*e5ecba4fSDavid Goldman  char _boolean;
7*e5ecba4fSDavid Goldman}
8*e5ecba4fSDavid Goldman
9*e5ecba4fSDavid Goldman@property(nonatomic, assign) int bar;
10*e5ecba4fSDavid Goldman@property(atomic, retain) id objectField;
11*e5ecba4fSDavid Goldman@property(nonatomic, assign) id delegate;
12*e5ecba4fSDavid Goldman
13*e5ecba4fSDavid Goldman- (void)someMethod;
14*e5ecba4fSDavid Goldman@end
15*e5ecba4fSDavid Goldman
16*e5ecba4fSDavid Goldman@implementation BasicClass
17*e5ecba4fSDavid Goldman
18*e5ecba4fSDavid Goldman@synthesize bar = _bar;
19*e5ecba4fSDavid Goldman@synthesize objectField = _objectField;
20*e5ecba4fSDavid Goldman@synthesize delegate = _delegate;
21*e5ecba4fSDavid Goldman
22*e5ecba4fSDavid Goldman- (void)someMethod {
23*e5ecba4fSDavid Goldman  int value = self.bar;
24*e5ecba4fSDavid Goldman  _foo = (_boolean != 0) ? self.bar : [self.objectField bar];
25*e5ecba4fSDavid Goldman  [self setBar:value];
26*e5ecba4fSDavid Goldman  id obj = self.objectField;
27*e5ecba4fSDavid Goldman}
28*e5ecba4fSDavid Goldman@end
29*e5ecba4fSDavid Goldman
30