From 219968a3c54beb1477455ccf046af01e73a559fd Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Mon, 8 Dec 2014 08:48:21 +0000 Subject: [PATCH] [libclang] Encode the C++11 method reference qualifier in the USR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223630 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Index/USRGeneration.cpp | 5 +++++ test/Index/usrs-cxx0x.cpp | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/Index/USRGeneration.cpp b/lib/Index/USRGeneration.cpp index 5b917c99de..88e6d3bf8a 100644 --- a/lib/Index/USRGeneration.cpp +++ b/lib/Index/USRGeneration.cpp @@ -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; + } } } diff --git a/test/Index/usrs-cxx0x.cpp b/test/Index/usrs-cxx0x.cpp index a48b4467b7..822fed0cd2 100644 --- a/test/Index/usrs-cxx0x.cpp +++ b/test/Index/usrs-cxx0x.cpp @@ -3,6 +3,14 @@ struct tuple { }; void f(tuple); +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] -- 2.40.0