Author: kremenek
Date: Mon May  2 20:33:35 2011
New Revision: 130748

URL: http://llvm.org/viewvc/llvm-project?rev=130748&view=rev
Log:
Use the canonical decl when generating the locations for USRs.

Modified:
    cfe/trunk/test/Index/usrs.cpp
    cfe/trunk/tools/libclang/CIndexUSRs.cpp

Modified: cfe/trunk/test/Index/usrs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/usrs.cpp?rev=130748&r1=130747&r2=130748&view=diff
==============================================================================
--- cfe/trunk/test/Index/usrs.cpp (original)
+++ cfe/trunk/test/Index/usrs.cpp Mon May  2 20:33:35 2011
@@ -65,6 +65,20 @@
 
 namespace foo_alias3 = foo;
 
+namespace {
+class RDar9371763_Foo {
+public:
+  void bar();
+};
+}
+
+void RDar9371763_Foo::bar() {}
+
+void rdar9371763() {
+  RDar9371763_Foo foo;
+  foo.bar();
+}
+
 // RUN: c-index-test -test-load-source-usrs all %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]
@@ -122,3 +136,11 @@
 // CHECK: usrs.cpp c:@NA@foo_alias2
 // CHECK-NOT: ClsB
 // CHECK: usrs.cpp c:@NA@foo_alias3
+// CHECK: usrs.cpp c:@aN Extent=[68:1 - 73:2]
+// CHECK: usrs.cpp c:@aN@C@RDar9371763_Foo Extent=[69:1 - 72:2]
+// CHECK: usrs.cpp c: Extent=[70:1 - 70:8]
+// CHECK: usrs.cpp c:usrs.cpp@1131@aN@C@RDar9371763_Foo@F@bar# Extent=[71:3 - 
71:13]
+// CHECK: usrs.cpp c:usrs.cpp@1131@aN@C@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]
+

Modified: cfe/trunk/tools/libclang/CIndexUSRs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndexUSRs.cpp?rev=130748&r1=130747&r2=130748&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CIndexUSRs.cpp (original)
+++ cfe/trunk/tools/libclang/CIndexUSRs.cpp Mon May  2 20:33:35 2011
@@ -477,6 +477,9 @@
     return true;
   }
 
+  // Use the location of canonical decl.
+  D = D->getCanonicalDecl();
+
   const SourceManager &SM = AU->getSourceManager();
   SourceLocation L = D->getLocStart();
   if (L.isInvalid()) {


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to