1// RUN: %clang_cc1 %s -fsyntax-only -Wobjc-property-implementation -Watomic-property-with-user-defined-accessor -Wunused 2> %t.err 2// RUN: FileCheck -input-file=%t.err %s 3 4@interface I 5@end 6 7@interface I(cat) 8@property id prop1; 9@property id prop2; 10@property id prop3; 11@end 12 13@implementation I(cat) 14@end 15 16// CHECK: warning: property 'prop1' requires method 17// CHECK: warning: property 'prop2' requires method 18// CHECK: warning: property 'prop3' requires method 19 20@interface I2 21@property int prop1; 22@property int prop2; 23@property int prop3; 24@end 25 26@implementation I2 27@synthesize prop1, prop2, prop3; 28-(int) prop1 { return 0; } 29-(int) prop2 { return 0; } 30-(int) prop3 { return 0; } 31@end 32 33// CHECK: warning: writable atomic property 'prop1' 34// CHECK: warning: writable atomic property 'prop2' 35// CHECK: warning: writable atomic property 'prop3' 36 37void test_unused() { 38 // Add enough variables to exceed the small storage of Scope::DeclSetTy. 39 int v1; 40 int v2; 41 int v3; 42 int v4; 43 int v5; 44 int v6; 45 int v7; 46 int v8; 47 int v9; 48 int v10; 49 int v11; 50 int v12; 51 int v13; 52 int v14; 53 int v15; 54 int v16; 55 int v17; 56 int v18; 57 int v19; 58 int v20; 59 int v21; 60 int v22; 61 int v23; 62 int v24; 63 int v25; 64 int v26; 65 int v27; 66 int v28; 67 int v29; 68 int v30; 69 int v31; 70 int v32; 71 int v33; 72 int v34; 73 int v35; 74 int v36; 75 int v37; 76 int v38; 77} 78 79// CHECK: warning: unused variable 'v1' 80// CHECK: warning: unused variable 'v2' 81// CHECK: warning: unused variable 'v3' 82// CHECK: warning: unused variable 'v4' 83// CHECK: warning: unused variable 'v5' 84// CHECK: warning: unused variable 'v6' 85// CHECK: warning: unused variable 'v7' 86// CHECK: warning: unused variable 'v8' 87// CHECK: warning: unused variable 'v9' 88// CHECK: warning: unused variable 'v10' 89// CHECK: warning: unused variable 'v11' 90// CHECK: warning: unused variable 'v12' 91// CHECK: warning: unused variable 'v13' 92// CHECK: warning: unused variable 'v14' 93// CHECK: warning: unused variable 'v15' 94// CHECK: warning: unused variable 'v16' 95// CHECK: warning: unused variable 'v17' 96// CHECK: warning: unused variable 'v18' 97// CHECK: warning: unused variable 'v19' 98// CHECK: warning: unused variable 'v20' 99// CHECK: warning: unused variable 'v21' 100// CHECK: warning: unused variable 'v22' 101// CHECK: warning: unused variable 'v23' 102// CHECK: warning: unused variable 'v24' 103// CHECK: warning: unused variable 'v25' 104// CHECK: warning: unused variable 'v26' 105// CHECK: warning: unused variable 'v27' 106// CHECK: warning: unused variable 'v28' 107// CHECK: warning: unused variable 'v29' 108// CHECK: warning: unused variable 'v30' 109// CHECK: warning: unused variable 'v31' 110// CHECK: warning: unused variable 'v32' 111// CHECK: warning: unused variable 'v33' 112// CHECK: warning: unused variable 'v34' 113// CHECK: warning: unused variable 'v35' 114// CHECK: warning: unused variable 'v36' 115// CHECK: warning: unused variable 'v37' 116// CHECK: warning: unused variable 'v38' 117