blob: d6201585939a75a0a877369362f387c795930bbf [file] [log] [blame]
/* Test out static (non-heap) allocations of ObjC class instances.
These should elicit errors. */
/* Developed by Ziemowit Laski <zlaski@apple.com>. */
/* { dg-do compile } */
@interface Object {
struct objc_class *isa;
}
@end
@compatibility_alias MyObject Object;
@interface Foo: Object {
int a;
Object *b;
Object c; /* { dg-error "statically allocated instance of Objective-C class .Object." } */
}
@end
@compatibility_alias MyFoo Foo;
typedef Foo FooAlias1;
typedef FooAlias1 FooAlias2;
typedef Object ObjectAlias1;
typedef struct Object ObjectAlias2;
Object staticObject1; /* { dg-error "statically allocated instance of Objective-C class .Object." } */
struct Object staticObject2; /* { dg-error "statically allocated instance of Objective-C class .Object." } */
static ObjectAlias1 staticObject3; /* { dg-error "statically allocated instance of Objective-C class .Object." } */
FooAlias1 staticFoo1; /* { dg-error "statically allocated instance of Objective-C class .Foo." } */
extern FooAlias2 externFoo1; /* { dg-error "statically allocated instance of Objective-C class .Foo." } */
static Foo staticFoo2; /* { dg-error "statically allocated instance of Objective-C class .Foo." } */
MyObject staticMyObject1; /* { dg-error "statically allocated instance of Objective-C class .Object." } */
MyFoo staticMyFoo1; /* { dg-error "statically allocated instance of Objective-C class .Foo." } */