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

@interface Foo // expected-note {{previous definition is here}}
@end

float Foo;	// expected-error {{redefinition of 'Foo' as different kind of symbol}}

@class Bar;  // expected-note {{previous definition is here}}

typedef int Bar;  // expected-error {{redefinition of 'Bar' as different kind of symbol}}

@implementation FooBar // expected-warning {{cannot find interface declaration for 'FooBar'}} 
@end


typedef int OBJECT; // expected-note {{previous definition is here}}

@class OBJECT ;	// expected-error {{redefinition of 'OBJECT' as different kind of symbol}}


typedef int Gorf;  // expected-note {{previous definition is here}}

@interface Gorf @end // expected-error {{redefinition of 'Gorf' as different kind of symbol}} expected-note {{previous definition is here}}

void Gorf() // expected-error {{redefinition of 'Gorf' as different kind of symbol}}
{
  int Bar, Foo, FooBar;
}

@protocol P -im1; @end
@protocol Q -im2; @end
@interface A<P> @end  // expected-note {{previous definition is here}}
@interface A<Q> @end  // expected-error {{duplicate interface definition for class 'A'}}

@protocol PP<P> @end  // expected-note {{previous definition is here}}
@protocol PP<Q> @end  // expected-warning {{duplicate protocol definition of 'PP'}}

@protocol DP<P> @end
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wduplicate-protocol"
@protocol DP<Q> @end
#pragma clang diagnostic pop

@interface A(Cat)<P> @end // expected-note {{previous definition is here}}
@interface A(Cat)<Q> @end // expected-warning {{duplicate definition of category 'Cat' on interface 'A'}}

// rdar 7626768
@class NSString;
NSString * TestBaz;  // expected-note {{previous definition is here}}
NSString * const TestBaz;  // expected-error {{redefinition of 'TestBaz' with a different type}}
