// RUN: %clang_cc1 -E %s -o %t.mm
// RUN: %clang_cc1 -fms-extensions -rewrite-objc -g %t.mm -o %t-rw.cpp
// RUN: FileCheck  -check-prefix LINE --input-file=%t-rw.cpp %s
// RUN: %clang_cc1 -fms-extensions -rewrite-objc %t.mm -o %t-rwnog.cpp
// RUN: FileCheck  -check-prefix NOLINE --input-file=%t-rwnog.cpp %s
// rdar://13138170

__attribute__((objc_root_class)) @interface MyObject {
@public
    id _myMaster;
    id _isTickledPink;
}
@property(retain) id myMaster;
@property(assign) id isTickledPink;
@end

@implementation MyObject

@synthesize myMaster = _myMaster;
@synthesize isTickledPink = _isTickledPink;

- (void) doSomething {
    _myMaster = _isTickledPink;
}

@end

MyObject * foo ()
{
	MyObject* p;
        p.isTickledPink = p.myMaster;	// ok
	p->_isTickledPink = p->_myMaster;
	return p->_isTickledPink;
}

// CHECK-LINE: #line 22
// CHECK-LINE: #line 28
// CHECK-NOLINE-NOT: #line 22
// CHECK-NOLINE-NOT: #line 28

