[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / clang / test / Sema / deterministic-diagnostics-order.m
blob31707d2559dba1ec93b6d48c4e907f2fe602edee
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
4 @interface I
5 @end
7 @interface I(cat)
8 @property id prop1;
9 @property id prop2;
10 @property id prop3;
11 @end
13 @implementation I(cat)
14 @end
16 // CHECK: warning: property 'prop1' requires method
17 // CHECK: warning: property 'prop2' requires method
18 // CHECK: warning: property 'prop3' requires method
20 @interface I2
21 @property int prop1;
22 @property int prop2;
23 @property int prop3;
24 @end
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
33 // CHECK: warning: writable atomic property 'prop1'
34 // CHECK: warning: writable atomic property 'prop2'
35 // CHECK: warning: writable atomic property 'prop3'
37 void 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;
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'