// RUN: %clang_cc1 -fsyntax-only -verify %s

@interface Super @end
Super s1; // expected-error{{interface type cannot be statically allocated}}

extern Super e1; // expected-error{{interface type cannot be statically allocated}}

struct S {
  Super s1; // expected-error{{interface type cannot be statically allocated}}
};

@protocol P1 @end

@interface INTF
{
  Super ivar1; // expected-error{{interface type cannot be statically allocated}}
}
@end

struct whatever {
  Super objField; // expected-error{{interface type cannot be statically allocated}}
};

@interface MyIntf
{
  Super<P1> ivar1; // expected-error{{interface type cannot be statically allocated}}
}
@end

Super foo( // expected-error{{interface interface type 'Super' cannot be returned by value}}
          Super parm1) { // expected-error{{interface interface type 'Super' cannot be passed by value}}
	Super p1; // expected-error{{interface type cannot be statically allocated}}
	return p1;
}

@interface NSMutableSet @end

@interface DVTDummyAnnotationProvider  
  @property(readonly) NSMutableSet annotations;	// expected-error{{interface type cannot be statically allocated}}

@end

