// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-fragile-abi %s -o %t-rw.cpp
// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -DKEEP_ATTRIBUTES -D"id=struct objc_object *" -D"Class=struct objc_class *" -D"SEL=void*" -D"__declspec(X)=" -emit-llvm -o - %t-rw.cpp | FileCheck %t-rw.cpp
// radar 7738453

void *sel_registerName(const char *);

@interface __NSCFType
@end

@interface __NSCFString : __NSCFType
- (const char *)UTF8String;
@end

@implementation __NSCFString
- (const char *)UTF8String {
    return (const char *)[super UTF8String];
}
@end

// CHECK: call %struct.objc_class* @class_getSuperclass

@class NSZone;

@interface NSObject {
}

+ (id)allocWithZone:(NSZone *)zone;
@end


@interface NSArray : NSObject
@end

@implementation NSArray
+ (id)allocWithZone:(NSZone *)zone {
    return [super allocWithZone:zone];
}
@end

@interface XNSArray
{
  Class isa;
}
@end

@class XNSArray;

@interface __NSArray0 : XNSArray
@end

@implementation __NSArray0 @end
