]> granicus.if.org Git - clang/commitdiff
[libclang] Encode the C++11 method reference qualifier in the USR.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 8 Dec 2014 08:48:21 +0000 (08:48 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 8 Dec 2014 08:48:21 +0000 (08:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223630 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Index/USRGeneration.cpp
test/Index/usrs-cxx0x.cpp

index 5b917c99de0a4f03582094db0d30c54b0a583c71..88e6d3bf8ac22483ff1502123680c9275cd4815a 100644 (file)
@@ -243,6 +243,11 @@ void USRGenerator::VisitFunctionDecl(const FunctionDecl *D) {
       Out << 'S';
     if (unsigned quals = MD->getTypeQualifiers())
       Out << (char)('0' + quals);
+    switch (MD->getRefQualifier()) {
+    case RQ_None: break;
+    case RQ_LValue: Out << '&'; break;
+    case RQ_RValue: Out << "&&"; break;
+    }
   }
 }
 
index a48b4467b731420790fb2969911450e4445b8845..822fed0cd28202055932968af4a235df07745877 100644 (file)
@@ -3,6 +3,14 @@ struct tuple { };
 
 void f(tuple<int, float, double>);
 
+class TestCls {
+  void meth() &;
+  void meth() &&;
+};
+
 // RUN: c-index-test -test-load-source-usrs all -std=c++11 %s | FileCheck %s
 // CHECK: usrs-cxx0x.cpp c:@ST>1#pT@tuple Extent=[1:1 - 2:17]
 // CHECK: usrs-cxx0x.cpp c:@F@f#$@S@tuple>#p3Ifd# Extent=[4:1 - 4:34]
+
+// CHECK: usrs-cxx0x.cpp c:@C@TestCls@F@meth#& Extent=[7:3 - 7:16]
+// CHECK: usrs-cxx0x.cpp c:@C@TestCls@F@meth#&& Extent=[8:3 - 8:17]