// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin11 -fsyntax-only -fobjc-arc -fblocks -Wexplicit-ownership-type -verify -Wno-objc-root-class %s
// rdar://10244607
typedef const struct __CFString * CFStringRef;
@class NSString;
NSString *;
typedef NSString * PNSString;
typedef __autoreleasing NSString * AUTORELEASEPNSString;
// rdar://problem/10711456
__strong I *__strong test1; // expected-error {{the type 'I *__strong' is already explicitly ownership-qualified}}
__strong I *; // expected-error {{the type 'I *__strong' is already explicitly ownership-qualified}}
__strong I *; // expected-error {{the type 'I *__strong' is already explicitly ownership-qualified}}
__unsafe_unretained test4;
typedef __strong I *strong_I;
__unsafe_unretained strong_I test5;
// rdar://10907090
typedef void ;
@protocol P;
// rdar://12280826
@class NSMutableDictionary, NSError;