// RUN: %clang_cc1  -fsyntax-only -verify -Wno-objc-root-class %s
// pr5986

@interface Test {
  int index;
}
- (int) index;
+ (int) ClassMethod;
@end

@implementation Test
- (int) index
{
  return index;
}
+ (int) ClassMethod
{
  return index;	// expected-error {{instance variable 'index' accessed in class method}}
}
@end

@interface Test1 {
}
- (int) InstMethod;
+ (int) ClassMethod;
@end

@implementation Test1
- (int) InstMethod
{
  return index;	// expected-warning {{implicitly declaring library function 'index'}}	\
                // expected-note {{please include the header <strings.h> or explicitly provide a declaration for 'index'}} \
                // expected-warning {{incompatible pointer to integer conversion returning}}
}
+ (int) ClassMethod
{
  return index; // expected-warning {{incompatible pointer to integer conversion returning}}
}
@end

