Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lldb / test / API / lang / objc / bitfield_ivars / main.m
blob75d3239a248bf076725a7873d820542c1026cc07
1 #import <objc/NSObject.h>
3 typedef struct {
4     unsigned char fieldOne : 1;
5     unsigned char fieldTwo : 1;
6     unsigned char fieldThree : 1;
7     unsigned char fieldFour : 1;
8     unsigned char fieldFive : 1;
9 } UCBitFields;
11 @interface HasBitfield : NSObject {
12 @public
13     unsigned field1 : 1;
14     unsigned field2 : 1;
17 -(id)init;
18 @end
20 @implementation HasBitfield
21 -(id)init {
22     self = [super init];
23     field1 = 0;
24     field2 = 1;
25     return self;
27 @end
29 @interface ContainsAHasBitfield : NSObject {
30 @public
31     HasBitfield *hb;
33 -(id)init;
34 @end
36 @implementation  ContainsAHasBitfield
37 -(id)init {
38     self = [super init];
39     hb = [[HasBitfield alloc] init];
40     return self;
43 @end
45 @interface HasBitfield2 : NSObject {
46 @public
47   unsigned int x;
49   unsigned field1 : 15;
50   unsigned field2 : 4;
51   unsigned field3 : 4;
53 @end
55 @implementation HasBitfield2
56 - (id)init {
57   return (self = [super init]);
59 @end
61 int main(int argc, const char * argv[]) {
62     ContainsAHasBitfield *chb = [[ContainsAHasBitfield alloc] init];
63     HasBitfield2 *hb2 = [[HasBitfield2 alloc] init];
65     hb2->x = 100;
66     hb2->field1 = 10;
67     hb2->field2 = 3;
68     hb2->field3 = 4;
70     UCBitFields myField = {0};
71     myField.fieldTwo = 1;
72     myField.fieldFive = 1;
74     return 0; // break here