From c951e3394fc8cab3d1a2552fb8d312752234657f Mon Sep 17 00:00:00 2001 From: DeLesley Hutchins <delesley@google.com> Date: Fri, 30 May 2014 18:20:04 +0000 Subject: [PATCH] Thread Safety Analysis: fix handling of string and char literals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209913 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Analysis/Analyses/ThreadSafetyTIL.h | 2 +- include/clang/Analysis/Analyses/ThreadSafetyTraverse.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/clang/Analysis/Analyses/ThreadSafetyTIL.h b/include/clang/Analysis/Analyses/ThreadSafetyTIL.h index e84af077f9f..8e4299ea70e 100644 --- a/include/clang/Analysis/Analyses/ThreadSafetyTIL.h +++ b/include/clang/Analysis/Analyses/ThreadSafetyTIL.h @@ -237,7 +237,7 @@ inline ValueType ValueType::getValueType<long double>() { template<> inline ValueType ValueType::getValueType<StringRef>() { - return ValueType(BT_Pointer, getSizeType(sizeof(StringRef)), false, 0); + return ValueType(BT_String, getSizeType(sizeof(StringRef)), false, 0); } template<> diff --git a/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h b/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h index 322a3b589ee..bc1490b4a44 100644 --- a/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h +++ b/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h @@ -599,6 +599,10 @@ protected: SS << E->value(); } + void printLiteralT(LiteralT<uint8_t> *E, StreamType &SS) { + SS << "'" << E->value() << "'"; + } + void printLiteral(Literal *E, StreamType &SS) { if (E->clangExpr()) { SS << getSourceLiteralString(E->clangExpr()); -- GitLab