aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/objc.dg/naming-7.m
blob: aa703176db02f17b31fd7b37c9f8e1c22ea3f136 (plain)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/* Testing for detecting duplicate ivars. */
/* { dg-do compile } */

/* This check wants to force the compiler to use a hashtable.  To do
   so, we need lots of instance variable.  */

@interface A 
{
  /* That's 200 instance variables, which is enough to trigger the
     hashtable check in the compiler.  */
  char a0; char a1; char a2; char a3; char a4; char a5; char a6; char a7; char a8; char a9;
  char b0; char b1; char b2; char b3; char b4; char b5; char b6; char b7; char b8; char b9;
  char c0; char c1; char c2; char c3; char c4; char c5; char c6; char c7; char c8; char c9;
  char d0; char d1; char d2; char d3; char d4; char d5; char d6; char d7; char d8; char d9;
  char e0; char e1; char e2; char e3; char e4; char e5; char e6; char e7; char e8; char e9;
  char f0; char f1; char f2; char f3; char f4; char f5; char f6; char f7; char f8; char f9;
  char g0; char g1; char g2; char g3; char g4; char g5; char g6; char g7; char g8; char g9;
  char h0; char h1; char h2; char h3; char h4; char h5; char h6; char h7; char h8; char h9;
  char i0; char i1; char i2; char i3; char i4; char i5; char i6; char i7; char i8; char i9;
  char j0; char j1; char j2; char j3; char j4; char j5; char j6; char j7; char j8; char j9;
  char k0; char k1; char k2; char k3; char k4; char k5; char k6; char k7; char k8; char k9;
  char l0; char l1; char l2; char l3; char l4; char l5; char l6; char l7; char l8; char l9;
  char m0; char m1; char m2; char m3; char m4; char m5; char m6; char m7; char m8; char m9;
  char n0; char n1; char n2; char n3; char n4; char n5; char n6; char n7; char n8; char n9;
  char o0; char o1; char o2; char o3; char o4; char o5; char o6; char o7; char o8; char o9;
  char p0; char p1; char p2; char p3; char p4; char p5; char p6; char p7; char p8; char p9;
  char q0; char q1; char q2; char q3; char q4; char q5; char q6; char q7; char q8; char q9;
  char r0; char r1; char r2; char r3; char r4; char r5; char r6; char r7; char r8; char r9;
  char s0; char s1; char s2; char s3; char s4; char s5; char s6; char s7; char s8; char s9;

  char x; /* { dg-message "previous declaration" } */
  char x; /* { dg-error "duplicate instance variable" } */

  char z; /* { dg-message "previous declaration" } */
  char k; /* { dg-message "previous declaration" } */
}
@end

@interface B : A
{
  /* That's another 200 instance variables, which should be enough to
     trigger the hashtable check in the compiler.  */
  char Ba0; char Ba1; char Ba2; char Ba3; char Ba4; char Ba5; char Ba6; char Ba7; char Ba8; char Ba9;
  char Bb0; char Bb1; char Bb2; char Bb3; char Bb4; char Bb5; char Bb6; char Bb7; char Bb8; char Bb9;
  char Bc0; char Bc1; char Bc2; char Bc3; char Bc4; char Bc5; char Bc6; char Bc7; char Bc8; char Bc9;
  char Bd0; char Bd1; char Bd2; char Bd3; char Bd4; char Bd5; char Bd6; char Bd7; char Bd8; char Bd9;
  char Be0; char Be1; char Be2; char Be3; char Be4; char Be5; char Be6; char Be7; char Be8; char Be9;
  char Bf0; char Bf1; char Bf2; char Bf3; char Bf4; char Bf5; char Bf6; char Bf7; char Bf8; char Bf9;
  char Bg0; char Bg1; char Bg2; char Bg3; char Bg4; char Bg5; char Bg6; char Bg7; char Bg8; char Bg9;
  char Bh0; char Bh1; char Bh2; char Bh3; char Bh4; char Bh5; char Bh6; char Bh7; char Bh8; char Bh9;
  char Bi0; char Bi1; char Bi2; char Bi3; char Bi4; char Bi5; char Bi6; char Bi7; char Bi8; char Bi9;
  char Bj0; char Bj1; char Bj2; char Bj3; char Bj4; char Bj5; char Bj6; char Bj7; char Bj8; char Bj9;
  char Bk0; char Bk1; char Bk2; char Bk3; char Bk4; char Bk5; char Bk6; char Bk7; char Bk8; char Bk9;
  char Bl0; char Bl1; char Bl2; char Bl3; char Bl4; char Bl5; char Bl6; char Bl7; char Bl8; char Bl9;
  char Bm0; char Bm1; char Bm2; char Bm3; char Bm4; char Bm5; char Bm6; char Bm7; char Bm8; char Bm9;
  char Bn0; char Bn1; char Bn2; char Bn3; char Bn4; char Bn5; char Bn6; char Bn7; char Bn8; char Bn9;
  char Bo0; char Bo1; char Bo2; char Bo3; char Bo4; char Bo5; char Bo6; char Bo7; char Bo8; char Bo9;
  char Bp0; char Bp1; char Bp2; char Bp3; char Bp4; char Bp5; char Bp6; char Bp7; char Bp8; char Bp9;
  char Bq0; char Bq1; char Bq2; char Bq3; char Bq4; char Bq5; char Bq6; char Bq7; char Bq8; char Bq9;
  char Br0; char Br1; char Br2; char Br3; char Br4; char Br5; char Br6; char Br7; char Br8; char Br9;
  char Bs0; char Bs1; char Bs2; char Bs3; char Bs4; char Bs5; char Bs6; char Bs7; char Bs8; char Bs9;

  char y; /* { dg-message "previous declaration" } */
  char y; /* { dg-error "duplicate instance variable" } */

  char z; /* { dg-error "duplicate instance variable" } */
}
@end

@interface C : A
{
  char w; /* { dg-message "previous declaration" } */
}
@end

@interface D : C
{
  /* That's another 200 instance variables, which should be enough to
     trigger the hashtable check in the compiler.  */
  char Da0; char Da1; char Da2; char Da3; char Da4; char Da5; char Da6; char Da7; char Da8; char Da9;
  char Db0; char Db1; char Db2; char Db3; char Db4; char Db5; char Db6; char Db7; char Db8; char Db9;
  char Dc0; char Dc1; char Dc2; char Dc3; char Dc4; char Dc5; char Dc6; char Dc7; char Dc8; char Dc9;
  char Dd0; char Dd1; char Dd2; char Dd3; char Dd4; char Dd5; char Dd6; char Dd7; char Dd8; char Dd9;
  char De0; char De1; char De2; char De3; char De4; char De5; char De6; char De7; char De8; char De9;
  char Df0; char Df1; char Df2; char Df3; char Df4; char Df5; char Df6; char Df7; char Df8; char Df9;
  char Dg0; char Dg1; char Dg2; char Dg3; char Dg4; char Dg5; char Dg6; char Dg7; char Dg8; char Dg9;
  char Dh0; char Dh1; char Dh2; char Dh3; char Dh4; char Dh5; char Dh6; char Dh7; char Dh8; char Dh9;
  char Di0; char Di1; char Di2; char Di3; char Di4; char Di5; char Di6; char Di7; char Di8; char Di9;
  char Dj0; char Dj1; char Dj2; char Dj3; char Dj4; char Dj5; char Dj6; char Dj7; char Dj8; char Dj9;
  char Dk0; char Dk1; char Dk2; char Dk3; char Dk4; char Dk5; char Dk6; char Dk7; char Dk8; char Dk9;
  char Dl0; char Dl1; char Dl2; char Dl3; char Dl4; char Dl5; char Dl6; char Dl7; char Dl8; char Dl9;
  char Dm0; char Dm1; char Dm2; char Dm3; char Dm4; char Dm5; char Dm6; char Dm7; char Dm8; char Dm9;
  char Dn0; char Dn1; char Dn2; char Dn3; char Dn4; char Dn5; char Dn6; char Dn7; char Dn8; char Dn9;
  char Do0; char Do1; char Do2; char Do3; char Do4; char Do5; char Do6; char Do7; char Do8; char Do9;
  char Dp0; char Dp1; char Dp2; char Dp3; char Dp4; char Dp5; char Dp6; char Dp7; char Dp8; char Dp9;
  char Dq0; char Dq1; char Dq2; char Dq3; char Dq4; char Dq5; char Dq6; char Dq7; char Dq8; char Dq9;
  char Dr0; char Dr1; char Dr2; char Dr3; char Dr4; char Dr5; char Dr6; char Dr7; char Dr8; char Dr9;
  char Ds0; char Ds1; char Ds2; char Ds3; char Ds4; char Ds5; char Ds6; char Ds7; char Ds8; char Ds9;

  char y; /* { dg-message "previous declaration" } */
  char y; /* { dg-error "duplicate instance variable" } */

  char w; /* { dg-error "duplicate instance variable" } */
  char k; /* { dg-error "duplicate instance variable" } */
}
@end

/* Finally, make sure that anonymous instance variables don't trigger
   warnings.  This is the same as the anon-1.m testcase, but forcing
   the hashtable check.  */
@interface E : D
{
  char : 1;
  char : 2;
}
@end

@interface F : E
{
  /* That's another 200 instance variables, which should be enough to
     trigger the hashtable check in the compiler.  */
  char Fa0; char Fa1; char Fa2; char Fa3; char Fa4; char Fa5; char Fa6; char Fa7; char Fa8; char Fa9;
  char Fb0; char Fb1; char Fb2; char Fb3; char Fb4; char Fb5; char Fb6; char Fb7; char Fb8; char Fb9;
  char Fc0; char Fc1; char Fc2; char Fc3; char Fc4; char Fc5; char Fc6; char Fc7; char Fc8; char Fc9;
  char Fd0; char Fd1; char Fd2; char Fd3; char Fd4; char Fd5; char Fd6; char Fd7; char Fd8; char Fd9;
  char Fe0; char Fe1; char Fe2; char Fe3; char Fe4; char Fe5; char Fe6; char Fe7; char Fe8; char Fe9;
  char Ff0; char Ff1; char Ff2; char Ff3; char Ff4; char Ff5; char Ff6; char Ff7; char Ff8; char Ff9;
  char Fg0; char Fg1; char Fg2; char Fg3; char Fg4; char Fg5; char Fg6; char Fg7; char Fg8; char Fg9;
  char Fh0; char Fh1; char Fh2; char Fh3; char Fh4; char Fh5; char Fh6; char Fh7; char Fh8; char Fh9;
  char Fi0; char Fi1; char Fi2; char Fi3; char Fi4; char Fi5; char Fi6; char Fi7; char Fi8; char Fi9;
  char Fj0; char Fj1; char Fj2; char Fj3; char Fj4; char Fj5; char Fj6; char Fj7; char Fj8; char Fj9;
  char Fk0; char Fk1; char Fk2; char Fk3; char Fk4; char Fk5; char Fk6; char Fk7; char Fk8; char Fk9;
  char Fl0; char Fl1; char Fl2; char Fl3; char Fl4; char Fl5; char Fl6; char Fl7; char Fl8; char Fl9;
  char Fm0; char Fm1; char Fm2; char Fm3; char Fm4; char Fm5; char Fm6; char Fm7; char Fm8; char Fm9;
  char Fn0; char Fn1; char Fn2; char Fn3; char Fn4; char Fn5; char Fn6; char Fn7; char Fn8; char Fn9;
  char Fo0; char Fo1; char Fo2; char Fo3; char Fo4; char Fo5; char Fo6; char Fo7; char Fo8; char Fo9;
  char Fp0; char Fp1; char Fp2; char Fp3; char Fp4; char Fp5; char Fp6; char Fp7; char Fp8; char Fp9;
  char Fq0; char Fq1; char Fq2; char Fq3; char Fq4; char Fq5; char Fq6; char Fq7; char Fq8; char Fq9;
  char Fr0; char Fr1; char Fr2; char Fr3; char Fr4; char Fr5; char Fr6; char Fr7; char Fr8; char Fr9;
  char Fs0; char Fs1; char Fs2; char Fs3; char Fs4; char Fs5; char Fs6; char Fs7; char Fs8; char Fs9;  

  char : 1;
  char : 2;
}
@end