From: Argyrios Kyrtzidis Date: Mon, 8 Dec 2014 08:48:17 +0000 (+0000) Subject: [libclang] Reflect in USR generation that 'signed char' and 'unsigned char' can overl... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ca044547d231b53a6d15423d7122ffe31debaa97;p=platform%2Fupstream%2Fllvm.git [libclang] Reflect in USR generation that 'signed char' and 'unsigned char' can overload a 'char' in C++, by giving them distinct encodings. llvm-svn: 223629 --- diff --git a/clang/lib/Index/USRGeneration.cpp b/clang/lib/Index/USRGeneration.cpp index 7f9417b..5b917c9 100644 --- a/clang/lib/Index/USRGeneration.cpp +++ b/clang/lib/Index/USRGeneration.cpp @@ -569,8 +569,9 @@ void USRGenerator::VisitType(QualType T) { case BuiltinType::UInt128: c = 'j'; break; case BuiltinType::Char_S: - case BuiltinType::SChar: c = 'C'; break; + case BuiltinType::SChar: + c = 'r'; break; case BuiltinType::WChar_S: case BuiltinType::WChar_U: c = 'W'; break; diff --git a/clang/test/Index/usrs.cpp b/clang/test/Index/usrs.cpp index dca141e..f277740 100644 --- a/clang/test/Index/usrs.cpp +++ b/clang/test/Index/usrs.cpp @@ -83,6 +83,10 @@ template typename T::A someTemplFn() {} template typename T::B someTemplFn() {} template int someTemplFn() {} +void funWithChar(char c) {} +void funWithChar(unsigned char c) {} +void funWithChar(signed char c) {} + // 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] @@ -147,6 +151,11 @@ template int someTemplFn() {} // CHECK: usrs.cpp c:usrs.cpp@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] + // 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] // CHECK: usrs.cpp c:@FT@>1#TsomeTemplFn#I# Extent=[84:1 - 84:40] + +// CHECK: usrs.cpp c:@F@funWithChar#C# Extent=[86:1 - 86:28] +// CHECK: usrs.cpp c:@F@funWithChar#c# Extent=[87:1 - 87:37] +// CHECK: usrs.cpp c:@F@funWithChar#r# Extent=[88:1 - 88:35]