xref: /aosp_15_r20/external/clang/test/SemaObjC/conflicting-ivar-test-1.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -fobjc-runtime=macosx-fragile-10.5 -fsyntax-only -verify -Wno-objc-root-class %s
2*67e74705SXin Li
3*67e74705SXin Li@interface INTF
4*67e74705SXin Li{
5*67e74705SXin Li@public
6*67e74705SXin Li	int IVAR; // expected-note {{previous definition is here}}
7*67e74705SXin Li}
8*67e74705SXin Li@end
9*67e74705SXin Li
10*67e74705SXin Li@implementation INTF
11*67e74705SXin Li{
12*67e74705SXin Li@private
13*67e74705SXin Li
14*67e74705SXin Li        int XIVAR; // expected-error {{conflicting instance variable names: 'XIVAR' vs 'IVAR'}}
15*67e74705SXin Li}
16*67e74705SXin Li@end
17*67e74705SXin Li
18*67e74705SXin Li
19*67e74705SXin Li
20*67e74705SXin Li@interface INTF1
21*67e74705SXin Li{
22*67e74705SXin Li@public
23*67e74705SXin Li	int IVAR;
24*67e74705SXin Li	int IVAR1; // expected-error {{inconsistent number of instance variables specified}}
25*67e74705SXin Li}
26*67e74705SXin Li@end
27*67e74705SXin Li
28*67e74705SXin Li@implementation INTF1
29*67e74705SXin Li{
30*67e74705SXin Li@private
31*67e74705SXin Li
32*67e74705SXin Li        int IVAR;
33*67e74705SXin Li}
34*67e74705SXin Li@end
35*67e74705SXin Li
36*67e74705SXin Li
37*67e74705SXin Li@interface INTF2
38*67e74705SXin Li{
39*67e74705SXin Li@public
40*67e74705SXin Li	int IVAR;
41*67e74705SXin Li}
42*67e74705SXin Li@end
43*67e74705SXin Li
44*67e74705SXin Li@implementation INTF2
45*67e74705SXin Li{
46*67e74705SXin Li@private
47*67e74705SXin Li
48*67e74705SXin Li        int IVAR;
49*67e74705SXin Li	int IVAR1; // expected-error {{inconsistent number of instance variables specified}}
50*67e74705SXin Li}
51*67e74705SXin Li@end
52*67e74705SXin Li
53*67e74705SXin Li
54*67e74705SXin Li@interface INTF3
55*67e74705SXin Li{
56*67e74705SXin Li@public
57*67e74705SXin Li	int IVAR; // expected-note {{previous definition is here}}
58*67e74705SXin Li}
59*67e74705SXin Li@end
60*67e74705SXin Li
61*67e74705SXin Li@implementation INTF3
62*67e74705SXin Li{
63*67e74705SXin Li@private
64*67e74705SXin Li
65*67e74705SXin Li        short IVAR; // expected-error {{instance variable 'IVAR' has conflicting type: 'short' vs 'int'}}
66*67e74705SXin Li}
67*67e74705SXin Li@end
68*67e74705SXin Li
69*67e74705SXin Li@implementation  INTF4 // expected-warning {{cannot find interface declaration for 'INTF4'}}
70*67e74705SXin Li{
71*67e74705SXin Li@private
72*67e74705SXin Li
73*67e74705SXin Li        short IVAR;
74*67e74705SXin Li}
75*67e74705SXin Li@end
76*67e74705SXin Li
77*67e74705SXin Li@interface INTF5
78*67e74705SXin Li{
79*67e74705SXin Li  char * ch;
80*67e74705SXin Li}
81*67e74705SXin Li@end
82*67e74705SXin Li
83*67e74705SXin Li@implementation  INTF5
84*67e74705SXin Li{
85*67e74705SXin Li}
86*67e74705SXin Li@end
87