/* Test out static (non-heap) allocations of ObjC class instances. These should elicit errors. */ /* Developed by Ziemowit Laski . */ /* { 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." } */