[libclang/AST]
AST: For auto-synthesized ivars give them the location of the related
property (previously they had no source location). This allows them
to be indexed by libclang.

libclang: Make sure synthesized ivars are indexed before the methods that
may reference them.

Fixes rdar://11607001.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158189 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Index/index-decls.m b/test/Index/index-decls.m
index 9e4e620..bf5e2c8 100644
--- a/test/Index/index-decls.m
+++ b/test/Index/index-decls.m
@@ -11,11 +11,21 @@
 @synthesize prop = _prop;
 @end
 
-rdar://11015325
+// rdar://11015325
 @interface I1
 __attribute__((something)) @interface I2 @end
 @end
 
+@interface I3
+@property (assign,readwrite) id auto_prop;
+@end
+
+@implementation I3
+-(void)meth {
+  _auto_prop = 0;
+}
+@end
+
 // RUN: c-index-test -index-file %s > %t
 // RUN: FileCheck %s -input-file=%t
 // CHECK: [indexDeclaration]: kind: objc-class | name: I | {{.*}} | loc: 1:12
@@ -28,3 +38,6 @@
 // CHECK: [indexDeclaration]: kind: objc-ivar | name: _prop | {{.*}} | loc: 11:20
 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: prop | {{.*}} | loc: 11:13 | {{.*}} | lexical-container: [I:10:17]
 // CHECK: [indexDeclaration]: kind: objc-instance-method | name: setProp: | {{.*}} | loc: 11:13 | {{.*}} | lexical-container: [I:10:17]
+
+// CHECK: [indexDeclaration]: kind: objc-ivar | name: _auto_prop | {{.*}} | loc: 20:33
+// CHECK: [indexEntityReference]: kind: objc-ivar | name: _auto_prop | {{.*}} | loc: 25:3