1/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010.  */
2/* { dg-do compile } */
3
4/* This test checks what happens if there are 16 instance variables.
5   In that case, the class was not created correctly.  In this testcase,
6   we have two classes, one with 15 variables and one with 16.  Older
7   GCCs would generate a bogus warning for the second class but not
8   for the first one.  This only happened for ObjC, but it's good to
9   test ObjC++ as well.  */
10
11#include <stdlib.h>
12#include <objc/objc.h>
13
14@interface MyRootClass1
15{
16  Class isa;
17  int v2;
18  int v3;
19  int v4;
20  int v5;
21  int v6;
22  int v7;
23  int v8;
24  int v9;
25  int v10;
26  int v11;
27  int v12;
28  int v13;
29  int v14;
30  int v15;
31}
32- (id) init;
33@end
34
35@implementation MyRootClass1
36- (id) init { return self; }
37@end
38
39
40@interface MyRootClass2
41{
42  Class isa;
43  int v2;
44  int v3;
45  int v4;
46  int v5;
47  int v6;
48  int v7;
49  int v8;
50  int v9;
51  int v10;
52  int v11;
53  int v12;
54  int v13;
55  int v14;
56  int v15;
57  /* Adding the 16th variable used to cause bogus warnings to be
58     generated.  */
59  int v16;
60}
61- (id) init;
62@end
63
64@implementation MyRootClass2
65- (id) init { return self; } /* This should not generate a bogus warning.  */
66@end
67