aboutsummaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/main.m
blob: a2b6b703d6c81f0bb18f43604a17e73f3751cc24 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
clang -g ExtendSuperclass.m -o ExtendSuperclass -framework Foundation -framework ProtectedCloudStorage -F/System/Library/PrivateFrameworks/ -framework CloudKit && ./ExtendSuperclass
*/
#include <assert.h>
#import <Foundation/Foundation.h>
#import <CloudKit/CloudKit.h>

#define SuperClass CKDatabase

@interface SubClass : SuperClass
@end

// class extension
@interface SuperClass ()
@property (nonatomic, strong)     NSString             *_sc_name;
@property (nonatomic, strong)     NSString             *_sc_name2;
@property (nonatomic, strong)     NSString             *_sc_name3;
@property (nonatomic, strong)     NSString             *_sc_name4;
@property (nonatomic, strong)     NSString             *_sc_name5;
@property (nonatomic, strong)     NSString             *_sc_name6;
@property (nonatomic, strong)     NSString             *_sc_name7;
@property (nonatomic, strong)     NSString             *_sc_name8;
@end

@implementation SuperClass (MySuperClass)
- (id)initThatDoesNotAssert
{
    return [super init];
}
@end

@implementation SubClass
- (id)initThatDoesNotAssert
{
    assert(_sc_name == nil);
    assert(_sc_name2 == nil);
    assert(_sc_name3 == nil);
    assert(_sc_name4 == nil);
    assert(_sc_name5 == nil);
    assert(_sc_name6 == nil);
    assert(_sc_name7 == nil);
    assert(_sc_name8 == nil); // break here

    if ((self = [super _initWithContainer:(CKContainer*)@"foo" scope:0xff])) {
        assert(_sc_name == nil);
        assert(_sc_name2 == nil);
        assert(_sc_name3 == nil);
        assert(_sc_name4 == nil);
        assert(_sc_name5 == nil);
        assert(_sc_name6 == nil);
        assert(_sc_name7 == nil);
        assert(_sc_name8 == nil);

        _sc_name = @"empty";
    }
    return self;
}
@synthesize _sc_name;
@synthesize _sc_name2;
@synthesize _sc_name3;
@synthesize _sc_name4;
@synthesize _sc_name5;
@synthesize _sc_name6;
@synthesize _sc_name7;
@synthesize _sc_name8;
- (void)foo:(NSString*)bar { self._sc_name = bar; }
- (NSString*)description { return [NSString stringWithFormat:@"%p: %@", self, self._sc_name]; }
@end

int main()
{
    SubClass *sc = [[SubClass alloc] initThatDoesNotAssert];
    NSLog(@"%@", sc);
    [sc foo:@"bar"];
    NSLog(@"%@", sc);
    sc._sc_name = @"bar2";
    NSLog(@"%@", sc);
    NSLog(@"%@", sc._sc_name);
    return 0;
}