// RUN: %clang_cc1 -fobjc-gc -triple x86_64-apple-darwin10 -fobjc-fragile-abi -emit-llvm -o - %s
// rdar: // 7501812

struct A {
  int member;
  void foo();
  A *operator->();
};
struct B : A { };

@interface BInt {
@private
  B *b;
}
- (B)value;
- (void)setValue : (B) arg;
@property B value;
@end

void g(BInt *bint) {
  bint.value.foo();
  bint.value->member = 17;
  int x = bint.value.member;
}