Add clang_getDeclLine and clang_getDeclColumn
Fix clang_getCursorDecl to do the right thing for expr refs
Fixup test file to accommodate new output (which includes the line/column for the referenced decl)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82798 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Index/c-index-api-test.m b/test/Index/c-index-api-test.m
index 5eb1df7..1a926bc 100644
--- a/test/Index/c-index-api-test.m
+++ b/test/Index/c-index-api-test.m
@@ -96,97 +96,97 @@
 // CHECK: c-index-api-test.m:76:6: VarDecl=a [Context:a]
 // CHECK: c-index-api-test.m:76:7: VarDecl=a [Context:a]
 // CHECK: c-index-api-test.m:76:8: VarDecl=a [Context:a]
-// CHECK: c-index-api-test.m:76:9: ObjCSelectorRef=foo [Context:a]
-// CHECK: c-index-api-test.m:76:10: VarRef=bee [Context:a]
-// CHECK: c-index-api-test.m:76:11: VarRef=bee [Context:a]
-// CHECK: c-index-api-test.m:76:12: VarRef=bee [Context:a]
-// CHECK: c-index-api-test.m:76:13: ObjCSelectorRef=foo [Context:a]
-// CHECK: c-index-api-test.m:76:14: ObjCSelectorRef=foo [Context:a]
-// CHECK: c-index-api-test.m:76:15: ObjCSelectorRef=foo [Context:a]
-// CHECK: c-index-api-test.m:76:16: ObjCSelectorRef=foo [Context:a]
-// CHECK: c-index-api-test.m:76:17: ObjCSelectorRef=foo [Context:a]
+// CHECK: c-index-api-test.m:76:9: ObjCSelectorRef=foo:15:15 [Context:a]
+// CHECK: c-index-api-test.m:76:10: VarRef=bee:75:75 [Context:a]
+// CHECK: c-index-api-test.m:76:11: VarRef=bee:75:75 [Context:a]
+// CHECK: c-index-api-test.m:76:12: VarRef=bee:75:75 [Context:a]
+// CHECK: c-index-api-test.m:76:13: ObjCSelectorRef=foo:15:15 [Context:a]
+// CHECK: c-index-api-test.m:76:14: ObjCSelectorRef=foo:15:15 [Context:a]
+// CHECK: c-index-api-test.m:76:15: ObjCSelectorRef=foo:15:15 [Context:a]
+// CHECK: c-index-api-test.m:76:16: ObjCSelectorRef=foo:15:15 [Context:a]
+// CHECK: c-index-api-test.m:76:17: ObjCSelectorRef=foo:15:15 [Context:a]
 // CHECK: c-index-api-test.m:77:12: VarDecl=c [Context:c]
 // CHECK: c-index-api-test.m:77:13: VarDecl=c [Context:c]
 // CHECK: c-index-api-test.m:77:14: VarDecl=c [Context:c]
 // CHECK: c-index-api-test.m:77:15: VarDecl=c [Context:c]
-// CHECK: c-index-api-test.m:77:16: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:17: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:18: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:19: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:20: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:21: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:22: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:23: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:24: ObjCSelectorRef=fooC [Context:c]
-// CHECK: c-index-api-test.m:77:25: ObjCSelectorRef=fooC [Context:c]
+// CHECK: c-index-api-test.m:77:16: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:17: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:18: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:19: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:20: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:21: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:22: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:23: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:24: ObjCSelectorRef=fooC:16:16 [Context:c]
+// CHECK: c-index-api-test.m:77:25: ObjCSelectorRef=fooC:16:16 [Context:c]
 // CHECK: c-index-api-test.m:78:13: VarDecl=d [Context:d]
-// CHECK: c-index-api-test.m:79:2: VarRef=d [Context:main]
-// CHECK: c-index-api-test.m:79:6: VarRef=c [Context:main]
-// CHECK: c-index-api-test.m:80:2: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:3: VarRef=d [Context:main]
-// CHECK: c-index-api-test.m:80:4: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:5: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:6: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:7: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:8: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:9: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:10: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:11: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:80:12: ObjCSelectorRef=pMethod [Context:main]
-// CHECK: c-index-api-test.m:81:2: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:3: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:81:4: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:81:5: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:81:6: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:7: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:8: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:9: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:10: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:11: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:12: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:13: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:14: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:15: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:16: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:17: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:18: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:19: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:20: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:21: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:22: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:23: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:24: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:25: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:81:26: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:27: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:81:28: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:81:29: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:81:30: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:31: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:32: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:33: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:34: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:35: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:36: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:37: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:38: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:39: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:40: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:41: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:42: ObjCSelectorRef=floatMethod [Context:main]
-// CHECK: c-index-api-test.m:81:43: ObjCSelectorRef=catMethodWithFloat: [Context:main]
-// CHECK: c-index-api-test.m:82:3: FunctionRef=main [Context:main]
-// CHECK: c-index-api-test.m:82:4: FunctionRef=main [Context:main]
-// CHECK: c-index-api-test.m:82:5: FunctionRef=main [Context:main]
-// CHECK: c-index-api-test.m:82:6: FunctionRef=main [Context:main]
-// CHECK: c-index-api-test.m:82:8: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:9: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:10: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:11: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:12: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:13: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:14: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:15: EnumConstantRef=someEnum [Context:main]
-// CHECK: c-index-api-test.m:82:33: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:82:34: VarRef=bee [Context:main]
-// CHECK: c-index-api-test.m:82:35: VarRef=bee [Context:main]
+// CHECK: c-index-api-test.m:79:2: VarRef=d:78:78 [Context:main]
+// CHECK: c-index-api-test.m:79:6: VarRef=c:77:77 [Context:main]
+// CHECK: c-index-api-test.m:80:2: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:3: VarRef=d:78:78 [Context:main]
+// CHECK: c-index-api-test.m:80:4: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:5: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:6: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:7: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:8: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:9: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:10: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:11: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:80:12: ObjCSelectorRef=pMethod:32:32 [Context:main]
+// CHECK: c-index-api-test.m:81:2: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:3: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:81:4: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:81:5: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:81:6: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:7: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:8: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:9: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:10: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:11: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:12: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:13: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:14: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:15: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:16: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:17: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:18: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:19: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:20: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:21: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:22: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:23: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:24: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:25: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:81:26: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:27: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:81:28: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:81:29: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:81:30: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:31: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:32: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:33: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:34: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:35: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:36: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:37: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:38: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:39: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:40: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:41: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:42: ObjCSelectorRef=floatMethod:28:28 [Context:main]
+// CHECK: c-index-api-test.m:81:43: ObjCSelectorRef=catMethodWithFloat::27:27 [Context:main]
+// CHECK: c-index-api-test.m:82:3: FunctionRef=main:74:74 [Context:main]
+// CHECK: c-index-api-test.m:82:4: FunctionRef=main:74:74 [Context:main]
+// CHECK: c-index-api-test.m:82:5: FunctionRef=main:74:74 [Context:main]
+// CHECK: c-index-api-test.m:82:6: FunctionRef=main:74:74 [Context:main]
+// CHECK: c-index-api-test.m:82:8: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:9: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:10: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:11: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:12: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:13: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:14: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:15: EnumConstantRef=someEnum:49:49 [Context:main]
+// CHECK: c-index-api-test.m:82:33: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:82:34: VarRef=bee:75:75 [Context:main]
+// CHECK: c-index-api-test.m:82:35: VarRef=bee:75:75 [Context:main]