From: Ted Kremenek Date: Thu, 22 Jul 2010 11:14:15 +0000 (+0000) Subject: Switch USR generation to use file offsets instead of line/columns for anonymous symbo... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f48b5313825894c5e64ee39e932142723363571b;p=clang Switch USR generation to use file offsets instead of line/columns for anonymous symbols. Fixes . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109095 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Index/usrs.m b/test/Index/usrs.m index 0b56cca1ef..143b0673c8 100644 --- a/test/Index/usrs.m +++ b/test/Index/usrs.m @@ -57,19 +57,19 @@ static int local_func(int x) { return x; } @implementation CWithExt @end -// CHECK: usrs.m c:usrs.m@3:19@F@my_helper Extent=[3:19 - 3:60] -// 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:usrs.m@5:1@Ea Extent=[5:1 - 8:2] -// CHECK: usrs.m c:usrs.m@5:1@Ea@ABA Extent=[6:3 - 6:6] -// CHECK: usrs.m c:usrs.m@5:1@Ea@CADABA Extent=[7:3 - 7:9] -// CHECK: usrs.m c:usrs.m@10:1@Ea Extent=[10:1 - 13:2] -// CHECK: usrs.m c:usrs.m@10:1@Ea@FOO Extent=[11:3 - 11:6] -// CHECK: usrs.m c:usrs.m@10:1@Ea@BAR Extent=[12:3 - 12:6] +// CHECK: usrs.m c:usrs.m@85@F@my_helper Extent=[3:19 - 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@128@Ea Extent=[5:1 - 8:2] +// CHECK: usrs.m c:usrs.m@128@Ea@ABA Extent=[6:3 - 6:6] +// CHECK: usrs.m c:usrs.m@128@Ea@CADABA Extent=[7:3 - 7:9] +// CHECK: usrs.m c:usrs.m@155@Ea Extent=[10:1 - 13:2] +// CHECK: usrs.m c:usrs.m@155@Ea@FOO Extent=[11:3 - 11:6] +// CHECK: usrs.m c:usrs.m@155@Ea@BAR Extent=[12:3 - 12:6] // CHECK: usrs.m c:@SA@MyStruct Extent=[15:9 - 18:2] // CHECK: usrs.m c:@SA@MyStruct@FI@wa Extent=[16:7 - 16:9] // CHECK: usrs.m c:@SA@MyStruct@FI@moo Extent=[17:7 - 17:10] -// CHECK: usrs.m c:usrs.m@18:3@T@MyStruct Extent=[18:3 - 18:11] +// CHECK: usrs.m c:usrs.m@219@T@MyStruct Extent=[18:3 - 18:11] // CHECK: usrs.m c:@E@Pizza Extent=[20:1 - 23:2] // CHECK: usrs.m c:@E@Pizza@CHEESE Extent=[21:3 - 21:9] // CHECK: usrs.m c:@E@Pizza@MUSHROOMS Extent=[22:3 - 22:12] @@ -81,21 +81,22 @@ static int local_func(int x) { return x; } // CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[30:1 - 30: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@31:15objc(cs)Foo(im)setD1:@d1 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: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@36:10objc(cs)Foo(im)godzilla@a Extent=[36:10 - 36:19] +// CHECK: usrs.m c:usrs.m@409objc(cs)Foo(im)godzilla@a Extent=[36:10 - 36:19] // CHECK: usrs.m c:objc(cs)Foo(im)godzilla@z Extent=[37:10 - 37:15] // CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[40:1 - 43:2] -// CHECK: usrs.m c:usrs.m@41:3objc(cs)Foo(cm)kingkong@local_var Extent=[41:3 - 41:16] +// CHECK: usrs.m c:usrs.m@470objc(cs)Foo(cm)kingkong@local_var Extent=[41:3 - 41:16] // CHECK: usrs.m c:objc(cs)Foo@d1 Extent=[44:13 - 44:15] // 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@49:12@F@local_func Extent=[49:12 - 49:43] -// CHECK: usrs.m c:usrs.m@49:23@F@local_func@x Extent=[49:23 - 49:28] +// CHECK: usrs.m c:usrs.m@540@F@local_func Extent=[49:12 - 49:43] +// CHECK: usrs.m c:usrs.m@551@F@local_func@x Extent=[49:23 - 49:28] // CHECK: usrs.m c:objc(cs)CWithExt Extent=[51:1 - 52:5] // CHECK: usrs.m c:objc(cy)CWithExt@ Extent=[53:1 - 54:5] // CHECK: usrs.m c:objc(cy)CWithExt@ Extent=[55:1 - 56:5] // CHECK: usrs.m c:objc(cs)CWithExt Extent=[57:1 - 58:2] + diff --git a/tools/libclang/CIndexUSRs.cpp b/tools/libclang/CIndexUSRs.cpp index e98fd262a7..602a0c7c36 100644 --- a/tools/libclang/CIndexUSRs.cpp +++ b/tools/libclang/CIndexUSRs.cpp @@ -368,10 +368,10 @@ bool USRGenerator::GenLoc(const Decl *D) { IgnoreResults = true; return true; } - Out << '@' - << SM.getLineNumber(Decomposed.first, Decomposed.second) << ':' - << SM.getColumnNumber(Decomposed.first, Decomposed.second); - + // 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. + Out << '@' << Decomposed.second; return IgnoreResults; }