mikhail.ramalho created this revision. mikhail.ramalho added reviewers: arphaman, rsmith. Herald added a subscriber: cfe-commits.
Small change on how the USRGen code prints the location. The patch fixes an issue when there are #line directives or linemarkes in the file, e.g.: #line 3 int Func(int arg); #line 10 "file.h" int Func(int arg1); # 1 "file1.c" 1 int Func(int arg); These testes were added to test/Index/usrs.cpp. I changed the printLoc function to, instead of adding the declaration offset to the name, it gets the presumedLoc (which handles line directives or linemarkes), and adds the line and column to the name, in the format <line>:<column>. The patch only changes the printLoc function in lib/index/USRGeneration.cpp; the other changes are test updates. Repository: rC Clang https://reviews.llvm.org/D42966 Files: lib/Index/USRGeneration.cpp test/Index/cxx11-lambdas.cpp test/Index/get-cursor.cpp test/Index/index-templates.cpp test/Index/pch-opaque-value.cpp test/Index/usrs.cpp test/Index/usrs.m
Index: test/Index/usrs.m =================================================================== --- test/Index/usrs.m +++ test/Index/usrs.m @@ -102,14 +102,14 @@ // RUN: c-index-test -test-load-source-usrs all -target x86_64-apple-macosx10.7 %s -isystem %S/Inputs | FileCheck %s // CHECK: usrs-system.h c:@macro@MACRO_FROM_SYSTEM_HEADER_1 Extent=[1:9 - 1:40] -// CHECK: usrs.m c:usrs.m@1265@macro@MACRO1 Extent=[94:9 - 94:19] -// CHECK: usrs.m c:usrs.m@1285@macro@MACRO2 Extent=[96:9 - 96:19] -// CHECK: usrs.m c:usrs.m@1318@macro@MACRO2 Extent=[98:9 - 98:19] -// CHECK: usrs.m c:usrs.m@1338@macro@MACRO3 Extent=[100:9 - 100:25] -// CHECK: usrs.m c:usrs.m@1363@macro@MACRO3 Extent=[101:9 - 101:25] +// CHECK: usrs.m c:usrs.m@94:9@macro@MACRO1 Extent=[94:9 - 94:19] +// CHECK: usrs.m c:usrs.m@96:9@macro@MACRO2 Extent=[96:9 - 96:19] +// CHECK: usrs.m c:usrs.m@98:9@macro@MACRO2 Extent=[98:9 - 98:19] +// CHECK: usrs.m c:usrs.m@100:9@macro@MACRO3 Extent=[100:9 - 100:25] +// CHECK: usrs.m c:usrs.m@101:9@macro@MACRO3 Extent=[101:9 - 101:25] // CHECK: usrs.m c:usrs.m@F@my_helper Extent=[3:1 - 3:60] -// CHECK: usrs.m c:usrs.m@95@F@my_helper@x Extent=[3:29 - 3:34] -// CHECK: usrs.m c:usrs.m@102@F@my_helper@y Extent=[3:36 - 3:41] +// CHECK: usrs.m c:usrs.m@3:29@F@my_helper@x Extent=[3:29 - 3:34] +// CHECK: usrs.m c:usrs.m@3:36@F@my_helper@y Extent=[3:36 - 3:41] // CHECK: usrs.m c:@Ea@ABA Extent=[5:1 - 8:2] // CHECK: usrs.m c:@Ea@ABA@ABA Extent=[6:3 - 6:6] // CHECK: usrs.m c:@Ea@ABA@CADABA Extent=[7:3 - 7:9] @@ -131,22 +131,22 @@ // CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[31:1 - 31:17] // CHECK: usrs.m c:objc(cs)Foo(im)d1 Extent=[31:15 - 31:17] // CHECK: usrs.m c:objc(cs)Foo(im)setD1: Extent=[31:15 - 31:17] -// CHECK: usrs.m c:usrs.m@352objc(cs)Foo(im)setD1:@d1 Extent=[31:15 - 31:17] +// CHECK: usrs.m c:usrs.m@31:15objc(cs)Foo(im)setD1:@d1 Extent=[31:15 - 31:17] // CHECK: usrs.m c:objc(cs)Foo Extent=[34:1 - 45:2] // CHECK: usrs.m c:objc(cs)Foo(im)godzilla Extent=[35:1 - 39:2] -// CHECK: usrs.m c:usrs.m@402objc(cs)Foo(im)godzilla@a Extent=[36:3 - 36:19] +// CHECK: usrs.m c:usrs.m@36:3objc(cs)Foo(im)godzilla@a Extent=[36:3 - 36:19] // CHECK: usrs.m c:@z Extent=[37:3 - 37:15] // CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[40:1 - 43:2] -// CHECK: usrs.m c:usrs.m@470objc(cs)Foo(cm)kingkong@local_var Extent=[41:3 - 41:16] +// CHECK: usrs.m c:usrs.m@41:3objc(cs)Foo(cm)kingkong@local_var Extent=[41:3 - 41:16] // CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[44:1 - 44:15] // CHECK: usrs.m c:@z Extent=[47:1 - 47:6] // CHECK: usrs.m c:usrs.m@F@local_func Extent=[49:1 - 49:43] -// CHECK: usrs.m c:usrs.m@551@F@local_func@x Extent=[49:23 - 49:28] +// CHECK: usrs.m c:usrs.m@49:23@F@local_func@x Extent=[49:23 - 49:28] // CHECK: usrs.m c:objc(cs)CWithExt Extent=[51:1 - 53:5] // CHECK: usrs.m c:objc(cs)CWithExt(im)meth1 Extent=[52:1 - 52:14] -// CHECK: usrs.m c:objc(ext)CWithExt@usrs.m@612 Extent=[54:1 - 56:5] +// CHECK: usrs.m c:objc(ext)CWithExt@usrs.m@54:1 Extent=[54:1 - 56:5] // CHECK: usrs.m c:objc(cs)CWithExt(im)meth2 Extent=[55:1 - 55:14] -// CHECK: usrs.m c:objc(ext)CWithExt@usrs.m@654 Extent=[57:1 - 59:5] +// CHECK: usrs.m c:objc(ext)CWithExt@usrs.m@57:1 Extent=[57:1 - 59:5] // CHECK: usrs.m c:objc(cs)CWithExt(im)meth3 Extent=[58:1 - 58:14] // CHECK: usrs.m c:objc(cy)CWithExt@Bar Extent=[60:1 - 62:5] // CHECK: usrs.m c:objc(cs)CWithExt(im)meth4 Extent=[61:1 - 61:14] @@ -158,13 +158,13 @@ // CHECK: usrs.m c:objc(cs)CWithExt(im)meth4 Extent=[69:1 - 69:27] // CHECK: usrs.m c:@F@aux_1 Extent=[72:1 - 72:26] // CHECK: usrs.m c:@F@test_multi_declaration Extent=[73:1 - 77:2] -// CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@foo Extent=[74:3 - 74:14] -// CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@bar Extent=[74:16 - 74:23] -// CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@baz Extent=[74:25 - 74:32] +// CHECK: usrs.m c:usrs.m@74:3@F@test_multi_declaration@foo Extent=[74:3 - 74:14] +// CHECK: usrs.m c:usrs.m@74:3@F@test_multi_declaration@bar Extent=[74:16 - 74:23] +// CHECK: usrs.m c:usrs.m@74:3@F@test_multi_declaration@baz Extent=[74:25 - 74:32] // CHECK: usrs.m c:objc(pl)P1 Extent=[79:1 - 81:5] // CHECK: usrs.m c:objc(pl)P1(im)method Extent=[80:1 - 80:16] // CHECK: usrs.m c:objc(cs)CWithExt2 Extent=[83:1 - 84:5] -// CHECK: usrs.m c:objc(ext)CWithExt2@usrs.m@1111 Extent=[85:1 - 90:5] +// CHECK: usrs.m c:objc(ext)CWithExt2@usrs.m@85:1 Extent=[85:1 - 90:5] // CHECK: usrs.m c:objc(cs)CWithExt2@var_ext Extent=[86:3 - 86:13] // CHECK: usrs.m c:objc(cs)CWithExt2(py)pro_ext Extent=[88:1 - 88:30] // CHECK: usrs.m c:objc(cs)CWithExt2(im)pro_ext Extent=[88:23 - 88:30] Index: test/Index/usrs.cpp =================================================================== --- test/Index/usrs.cpp +++ test/Index/usrs.cpp @@ -103,22 +103,31 @@ __m128 vectorOverload(__m128 f); +#line 3 +int Func(int arg); + +#line 10 "file.h" +int Func(int arg1); + +# 1 "file1.c" 1 +int Func(int arg); + // RUN: c-index-test -test-load-source-usrs all -fno-delayed-template-parsing %s | FileCheck %s // CHECK: usrs.cpp c:@N@foo Extent=[1:1 - 4:2] // CHECK: usrs.cpp c:@N@foo@x Extent=[2:3 - 2:8] // CHECK: usrs.cpp c:@N@foo@F@bar#I# Extent=[3:3 - 3:18] -// CHECK: usrs.cpp c:usrs.cpp@36@N@foo@F@bar#I#@z Extent=[3:12 - 3:17] +// CHECK: usrs.cpp c:usrs.cpp@3:12@N@foo@F@bar#I#@z Extent=[3:12 - 3:17] // CHECK: usrs.cpp c:@N@bar Extent=[5:1 - 8:2] // CHECK: usrs.cpp c:usrs.cpp@N@bar@T@QType Extent=[6:3 - 6:20] // CHECK: usrs.cpp c:@N@bar@F@bar#I# Extent=[7:3 - 7:20] -// CHECK: usrs.cpp c:usrs.cpp@94@N@bar@F@bar#I#@z Extent=[7:12 - 7:19] +// CHECK: usrs.cpp c:usrs.cpp@7:12@N@bar@F@bar#I#@z Extent=[7:12 - 7:19] // CHECK: usrs.cpp c:@S@ClsA Extent=[10:1 - 14:2] // CHECK: usrs.cpp c: Extent=[11:1 - 11:8] // CHECK: usrs.cpp c:@S@ClsA@FI@a Extent=[12:3 - 12:8] // CHECK: usrs.cpp c:@S@ClsA@FI@b Extent=[12:3 - 12:11] // CHECK: usrs.cpp c:@S@ClsA@F@ClsA#I#I# Extent=[13:3 - 13:37] -// CHECK: usrs.cpp c:usrs.cpp@147@S@ClsA@F@ClsA#I#I#@A Extent=[13:8 - 13:13] -// CHECK: usrs.cpp c:usrs.cpp@154@S@ClsA@F@ClsA#I#I#@B Extent=[13:15 - 13:20] +// CHECK: usrs.cpp c:usrs.cpp@13:8@S@ClsA@F@ClsA#I#I#@A Extent=[13:8 - 13:13] +// CHECK: usrs.cpp c:usrs.cpp@13:15@S@ClsA@F@ClsA#I#I#@B Extent=[13:15 - 13:20] // CHECK: usrs.cpp c:@N@foo Extent=[16:1 - 22:2] // CHECK: usrs.cpp c:@N@foo@S@ClsB Extent=[17:3 - 21:4] // CHECK: usrs.cpp c: Extent=[18:3 - 18:10] @@ -132,29 +141,29 @@ // CHECK: usrs.cpp c:@N@foo@N@taz Extent=[35:17 - 39:2] // CHECK: usrs.cpp c:@N@foo@N@taz@x Extent=[36:3 - 36:8] // CHECK: usrs.cpp c:usrs.cpp@N@foo@N@taz@F@add#I#I# Extent=[37:3 - 37:56] -// CHECK: usrs.cpp c:usrs.cpp@479@N@foo@N@taz@F@add#I#I#@a Extent=[37:25 - 37:30] -// CHECK: usrs.cpp c:usrs.cpp@486@N@foo@N@taz@F@add#I#I#@b Extent=[37:32 - 37:37] +// CHECK: usrs.cpp c:usrs.cpp@37:25@N@foo@N@taz@F@add#I#I#@a Extent=[37:25 - 37:30] +// CHECK: usrs.cpp c:usrs.cpp@37:32@N@foo@N@taz@F@add#I#I#@b Extent=[37:32 - 37:37] // CHECK: usrs.cpp c:@N@foo@N@taz@F@sub#I#I# Extent=[38:3 - 38:25] -// CHECK: usrs.cpp c:usrs.cpp@522@N@foo@N@taz@F@sub#I#I#@a Extent=[38:12 - 38:17] -// CHECK: usrs.cpp c:usrs.cpp@529@N@foo@N@taz@F@sub#I#I#@b Extent=[38:19 - 38:24] +// CHECK: usrs.cpp c:usrs.cpp@38:12@N@foo@N@taz@F@sub#I#I#@a Extent=[38:12 - 38:17] +// CHECK: usrs.cpp c:usrs.cpp@38:19@N@foo@N@taz@F@sub#I#I#@b Extent=[38:19 - 38:24] // CHECK: usrs.cpp c:@N@foo Extent=[42:1 - 52:3] // CHECK: usrs.cpp c:@N@foo@N@taz Extent=[42:17 - 52:2] // CHECK: usrs.cpp c:@N@foo@N@taz@S@ClsD Extent=[43:3 - 51:4] // CHECK: usrs.cpp c: Extent=[44:3 - 44:10] // CHECK: usrs.cpp c:@N@foo@N@taz@S@ClsD@F@operator=#I# Extent=[45:5 - 45:52] -// CHECK: usrs.cpp c:usrs.cpp@638@N@foo@N@taz@S@ClsD@F@operator=#I#@x Extent=[45:21 - 45:26] +// CHECK: usrs.cpp c:usrs.cpp@45:21@N@foo@N@taz@S@ClsD@F@operator=#I#@x Extent=[45:21 - 45:26] // CHECK: usrs.cpp c:@N@foo@N@taz@S@ClsD@F@operator=#d# Extent=[46:5 - 46:61] -// CHECK: usrs.cpp c:usrs.cpp@690@N@foo@N@taz@S@ClsD@F@operator=#d#@x Extent=[46:21 - 46:29] +// CHECK: usrs.cpp c:usrs.cpp@46:21@N@foo@N@taz@S@ClsD@F@operator=#d#@x Extent=[46:21 - 46:29] // CHECK: usrs.cpp c:@N@foo@N@taz@S@ClsD@F@operator=#&1$@N@foo@N@taz@S@ClsD# Extent=[47:5 - 47:62] -// CHECK: usrs.cpp c:usrs.cpp@751@N@foo@N@taz@S@ClsD@F@operator=#&1$@N@foo@N@taz@S@ClsD#@x Extent=[47:21 - 47:34] +// CHECK: usrs.cpp c:usrs.cpp@47:21@N@foo@N@taz@S@ClsD@F@operator=#&1$@N@foo@N@taz@S@ClsD#@x Extent=[47:21 - 47:34] // CHECK: usrs.cpp c:@N@foo@N@taz@S@ClsD@F@qux#S Extent=[48:5 - 48:21] // CHECK: usrs.cpp c:@N@foo@N@taz@S@ClsD@F@uz#I.#S Extent=[49:5 - 49:30] -// CHECK: usrs.cpp c:usrs.cpp@833@N@foo@N@taz@S@ClsD@F@uz#I.#S@z Extent=[49:19 - 49:24] +// CHECK: usrs.cpp c:usrs.cpp@49:19@N@foo@N@taz@S@ClsD@F@uz#I.#S@z Extent=[49:19 - 49:24] // CHECK: usrs.cpp c:@N@foo@N@taz@S@ClsD@F@operator==#&1$@N@foo@N@taz@S@ClsD#1 Extent=[50:5 - 50:62] -// CHECK: usrs.cpp c:usrs.cpp@866@N@foo@N@taz@S@ClsD@F@operator==#&1$@N@foo@N@taz@S@ClsD#1@x Extent=[50:21 - 50:34] +// CHECK: usrs.cpp c:usrs.cpp@50:21@N@foo@N@taz@S@ClsD@F@operator==#&1$@N@foo@N@taz@S@ClsD#1@x Extent=[50:21 - 50:34] // CHECK: usrs.cpp c:@F@rez Extent=[55:3 - 55:25] -// CHECK: usrs.cpp c:usrs.cpp@941@F@rez@a Extent=[55:12 - 55:17] -// CHECK: usrs.cpp c:usrs.cpp@948@F@rez@b Extent=[55:19 - 55:24] +// CHECK: usrs.cpp c:usrs.cpp@55:12@F@rez@a Extent=[55:12 - 55:17] +// CHECK: usrs.cpp c:usrs.cpp@55:19@F@rez@b Extent=[55:19 - 55:24] // CHECK: usrs.cpp c:@NA@foo_alias // CHECK-NOT: foo // CHECK: usrs.cpp c:@NA@foo_alias2 @@ -166,7 +175,7 @@ // CHECK: usrs.cpp c:usrs.cpp@aN@S@RDar9371763_Foo@F@bar# Extent=[71:3 - 71:13] // CHECK: usrs.cpp c:usrs.cpp@aN@S@RDar9371763_Foo@F@bar# Extent=[75:1 - 75:31] // CHECK: usrs.cpp c:@F@rdar9371763# Extent=[77:1 - 80:2] -// CHECK: usrs.cpp c:usrs.cpp@1204@F@rdar9371763#@foo Extent=[78:3 - 78:22] +// CHECK: usrs.cpp c:usrs.cpp@78:3@F@rdar9371763#@foo Extent=[78:3 - 78:22] // CHECK: usrs.cpp c:@FT@>1#TsomeTemplFn#^type-parameter-0-0:::A# Extent=[82:1 - 82:50] // CHECK: usrs.cpp c:@FT@>1#TsomeTemplFn#^type-parameter-0-0:::B# Extent=[83:1 - 83:50] @@ -176,10 +185,20 @@ // CHECK: usrs.cpp c:@F@funWithChar#c# Extent=[87:1 - 87:37] // CHECK: usrs.cpp c:@F@funWithChar#r# Extent=[88:1 - 88:35] -// CHECK: usrs.cpp c:usrs.cpp@s...@usrs.cpp@1483@FI@x Extent=[90:10 - 90:15] -// CHECK: usrs.cpp c:usrs.cpp@s...@usrs.cpp@1510@FI@x Extent=[91:10 - 91:15] +// CHECK: usrs.cpp c:usrs.cpp@s...@usrs.cpp@90:1@FI@x Extent=[90:10 - 90:15] +// CHECK: usrs.cpp c:usrs.cpp@s...@usrs.cpp@91:1@FI@x Extent=[91:10 - 91:15] // CHECK: usrs.cpp c:@ST>1#T@TC1@F@meth#>@ST>1#T@TC11t0.0# Extent=[95:3 - 95:17] // CHECK: usrs.cpp c:@F@vectorOverload#]3f# Extent=[102:1 - 102:32] // CHECK: usrs.cpp c:@F@vectorOverload#[4f# Extent=[104:1 - 104:32] +// CHECK: usrs.cpp c:usrs.cpp@104:23@F@vectorOverload#[4f#@f Extent=[104:23 - 104:31] + +// CHECK: usrs.cpp c:@F@Func#I# Extent=[107:1 - 107:18] +// CHECK: usrs.cpp c:usrs.cpp@3:10@F@Func#I#@arg Extent=[107:10 - 107:17] + +// CHECK: usrs.cpp c:@F@Func#I# Extent=[110:1 - 110:19] +// CHECK: usrs.cpp c:file.h@10:10@F@Func#I#@arg1 Extent=[110:10 - 110:18] + +// CHECK: usrs.cpp c:@F@Func#I# Extent=[113:1 - 113:18] +// CHECK: usrs.cpp c:file1.c@1:10@F@Func#I#@arg Extent=[113:10 - 113:17] Index: test/Index/pch-opaque-value.cpp =================================================================== --- test/Index/pch-opaque-value.cpp +++ test/Index/pch-opaque-value.cpp @@ -13,4 +13,4 @@ // RUN: c-index-test -write-pch %t.pch %s // RUN: c-index-test -test-load-tu-usrs %t.pch local | FileCheck %s -// CHECK: pch-opaque-value.cpp c:pch-opaque-value.cpp@86@F@f#@e Extent=[10:12 - 10:15] +// CHECK: pch-opaque-value.cpp c:pch-opaque-value.cpp@10:12@F@f#@e Extent=[10:12 - 10:15] Index: test/Index/index-templates.cpp =================================================================== --- test/Index/index-templates.cpp +++ test/Index/index-templates.cpp @@ -199,26 +199,26 @@ // RUN: c-index-test -test-load-source-usrs all -fno-delayed-template-parsing %s | FileCheck -check-prefix=CHECK-USRS %s // CHECK-USRS: index-templates.cpp c:@FT@>3#T#Nt0.0#t>2#T#Nt1.0f#>t0.22S0_#v# Extent=[3:1 - 4:22] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@70 Extent=[3:10 - 3:20] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@82 Extent=[3:22 - 3:29] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@91 Extent=[3:31 - 3:67] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@136@FT@>3#T#Nt0.0#t>2#T#Nt1.0f#>t0.22S0_#v#@x Extent=[4:8 - 4:21] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@3:10 Extent=[3:10 - 3:20] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@3:22 Extent=[3:22 - 3:29] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@3:31 Extent=[3:31 - 3:67] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@4:8@FT@>3#T#Nt0.0#t>2#T#Nt1.0f#>t0.22S0_#v#@x Extent=[4:8 - 4:21] // CHECK-USRS: index-templates.cpp c:@ST>1#T@allocator Extent=[6:1 - 6:37] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@162 Extent=[6:10 - 6:20] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@6:10 Extent=[6:10 - 6:20] // CHECK-USRS: index-templates.cpp c:@ST>2#T#T@vector Extent=[8:1 - 11:2] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@201 Extent=[8:10 - 8:20] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@213 Extent=[8:22 - 8:51] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@8:10 Extent=[8:10 - 8:20] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@8:22 Extent=[8:22 - 8:51] // CHECK-USRS: index-templates.cpp c:@ST>2#T#T@vector@F@clear# Extent=[10:3 - 10:15] // CHECK-USRS: index-templates.cpp c:@SP>1#T@vector>#*t0.0#>@ST>1#T@allocator1S0_ Extent=[13:1 - 14:21] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@289 Extent=[13:10 - 13:20] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@13:10 Extent=[13:10 - 13:20] // CHECK-USRS: index-templates.cpp c:@S@Z1 Extent=[16:1 - 16:14] // CHECK-USRS: index-templates.cpp c:@S@vector>#$@S@Z1#$@S@allocator>#S0_ Extent=[18:1 - 18:26] // CHECK-USRS: index-templates.cpp c:@S@Z2 Extent=[20:1 - 20:14] // CHECK-USRS: index-templates.cpp c:@S@vector>#$@S@Z2#$@S@allocator>#S0_ Extent=[22:1 - 25:2] // CHECK-USRS: index-templates.cpp c:@S@vector>#$@S@Z2#$@S@allocator>#S0_@F@clear# Extent=[24:3 - 24:15] // CHECK-USRS: index-templates.cpp c:@ST>2#T#T@Y Extent=[27:1 - 31:2] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@443 Extent=[27:10 - 27:20] -// CHECK-USRS: index-templates.cpp c:index-templates.cpp@455 Extent=[27:22 - 27:32] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@27:10 Extent=[27:10 - 27:20] +// CHECK-USRS: index-templates.cpp c:index-templates.cpp@27:22 Extent=[27:22 - 27:32] // CHECK-USRS: index-templates.cpp c:index-templates.cpp@ST>2#T#T@Y@UUT@T::type Extent=[29:3 - 29:25] // CHECK-USRS: index-templates.cpp c:@S@Z3 Extent=[33:1 - 33:14] // CHECK-USRS: index-templates.cpp c:@F@f#$@S@map>#$@S@Z4#$@S@Pair>#I#S1_#$@S@compare>#$@S@Pair>#S1_#S2_#$@S@allocator>#S4_# Index: test/Index/get-cursor.cpp =================================================================== --- test/Index/get-cursor.cpp +++ test/Index/get-cursor.cpp @@ -208,8 +208,8 @@ // CHECK-CXXCATCH-NEXT: TypeRef=struct X:3:8 // RUN: c-index-test -test-load-source-usrs local %s | FileCheck -check-prefix=CHECK-USR %s -// CHECK-USR: get-cursor.cpp c:get-cursor.cpp@472@F@test#@e Extent=[38:12 - 38:15] -// CHECK-USR: get-cursor.cpp c:get-cursor.cpp@483@F@test#@x Extent=[39:5 - 39:8] +// CHECK-USR: get-cursor.cpp c:get-cursor.cpp@38:12@F@test#@e Extent=[38:12 - 38:15] +// CHECK-USR: get-cursor.cpp c:get-cursor.cpp@39:5@F@test#@x Extent=[39:5 - 39:8] // RUN: c-index-test -cursor-at=%s:45:9 %s | FileCheck -check-prefix=CHECK-LOCALCLASS %s // CHECK-LOCALCLASS: 45:9 DeclRefExpr=x:44:11 Extent=[45:9 - 45:10] Spelling=x ([45:9 - 45:10]) Index: test/Index/cxx11-lambdas.cpp =================================================================== --- test/Index/cxx11-lambdas.cpp +++ test/Index/cxx11-lambdas.cpp @@ -24,10 +24,10 @@ // CHECK-LOAD: cxx11-lambdas.cpp:8:32: DeclRefExpr=x:7:46 Extent=[8:32 - 8:33] // RUN: env CINDEXTEST_INDEXLOCALSYMBOLS=1 c-index-test -index-file -std=c++11 %s | FileCheck -check-prefix=CHECK-INDEX %s -// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localA | USR: c:cxx11-lambdas.cpp@100@S@X@F@f#@localA | lang: C | cursor: VariableRef=localA:6:9 | loc: 7:21 -// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localB | USR: c:cxx11-lambdas.cpp@100@S@X@F@f#@localB | lang: C | cursor: VariableRef=localB:6:17 | loc: 7:29 +// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localA | USR: c:cxx11-lambdas.cpp@6:5@S@X@F@f#@localA | lang: C | cursor: VariableRef=localA:6:9 | loc: 7:21 +// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localB | USR: c:cxx11-lambdas.cpp@6:5@S@X@F@f#@localB | lang: C | cursor: VariableRef=localB:6:17 | loc: 7:29 // CHECK-INDEX: [indexEntityReference]: kind: typedef | name: Integer | USR: c:cxx11-lambdas.cpp@T@Integer | lang: C | cursor: TypeRef=Integer:3:13 | loc: 7:52 // CHECK-INDEX: [indexEntityReference]: kind: typedef | name: Integer | USR: c:cxx11-lambdas.cpp@T@Integer | lang: C | cursor: TypeRef=Integer:3:13 | loc: 7:38 -// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localA | USR: c:cxx11-lambdas.cpp@100@S@X@F@f#@localA | lang: C | cursor: DeclRefExpr=localA:6:9 | loc: 8:14 -// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localB | USR: c:cxx11-lambdas.cpp@100@S@X@F@f#@localB | lang: C | cursor: DeclRefExpr=localB:6:17 | loc: 8:23 -// CHECK-INDEX: [indexEntityReference]: kind: variable | name: x | USR: c:cxx11-lambdas.cpp@157@S@X@F@f#@Sa@F@operator()#I#1@x | lang: C | cursor: DeclRefExpr=x:7:46 | loc: 8:32 +// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localA | USR: c:cxx11-lambdas.cpp@6:5@S@X@F@f#@localA | lang: C | cursor: DeclRefExpr=localA:6:9 | loc: 8:14 +// CHECK-INDEX: [indexEntityReference]: kind: variable | name: localB | USR: c:cxx11-lambdas.cpp@6:5@S@X@F@f#@localB | lang: C | cursor: DeclRefExpr=localB:6:17 | loc: 8:23 +// CHECK-INDEX: [indexEntityReference]: kind: variable | name: x | USR: c:cxx11-lambdas.cpp@7:38@S@X@F@f#@Sa@F@operator()#I#1@x | lang: C | cursor: DeclRefExpr=x:7:46 | loc: 8:32 Index: lib/Index/USRGeneration.cpp =================================================================== --- lib/Index/USRGeneration.cpp +++ lib/Index/USRGeneration.cpp @@ -28,20 +28,14 @@ if (Loc.isInvalid()) { return true; } - Loc = SM.getExpansionLoc(Loc); - const std::pair<FileID, unsigned> &Decomposed = SM.getDecomposedLoc(Loc); - const FileEntry *FE = SM.getFileEntryForID(Decomposed.first); - if (FE) { - OS << llvm::sys::path::filename(FE->getName()); - } else { + clang::PresumedLoc PLoc = SM.getPresumedLoc(Loc); + if(PLoc.isInvalid()) { // This case really isn't interesting. return true; } + OS << llvm::sys::path::filename(PLoc.getFilename()); if (IncludeOffset) { - // Use the offest into the FileID to represent the location. Using - // a line/column can cause us to look back at the original source file, - // which is expensive. - OS << '@' << Decomposed.second; + OS << '@' << PLoc.getLine() << ':' << PLoc.getColumn(); } return false; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits