// 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 -D_Bool=bool -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
// radar 8143056

typedef struct objc_class *Class;
typedef unsigned NSPointerFunctionsOptions;
extern "C" id NSClassFromObject(id object);
void *sel_registerName(const char *);

struct NSSlice {
  int i1;
};

@interface NSConcretePointerFunctions {
  @public
    struct NSSlice slice;
}
- (bool)initializeSlice:(struct NSSlice *)slicep withOptions:(NSPointerFunctionsOptions)options;
@end

@implementation NSConcretePointerFunctions
- (id)initWithOptions:(NSPointerFunctionsOptions)options {
      if (![NSClassFromObject(self) initializeSlice:&slice withOptions:options])
        return 0;
      return self;
  }
- (bool)initializeSlice:(struct NSSlice *)slicep withOptions:(NSPointerFunctionsOptions)options {
    return 0;
  }
@end

@implementation I1
+ (struct s1 *) f0 {
  return 0;
}
@end
