diff options
author | Jordan Rose <jordan_rose@apple.com> | 2013-07-17 17:16:38 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2013-07-17 17:16:38 +0000 |
commit | 5fded08403ed0f138e057e78338d77dd321e59ee (patch) | |
tree | fae0c58970307fee20d0042926fccdc4aec9685f /clang/lib/StaticAnalyzer/Core/RegionStore.cpp | |
parent | 05b2f98d891b56f85186aa6da61ad417b8153730 (diff) | |
download | bcm5719-llvm-5fded08403ed0f138e057e78338d77dd321e59ee.tar.gz bcm5719-llvm-5fded08403ed0f138e057e78338d77dd321e59ee.zip |
[analyzer] Handle C string default values for const char * arguments.
Previously, SValBuilder knew how to evaluate StringLiterals, but couldn't
handle an array-to-pointer decay for constant values. Additionally,
RegionStore was being too strict about loading from an array, refusing to
return a 'char' value from a 'const char' array. Both of these have been
fixed.
llvm-svn: 186520
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/RegionStore.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Core/RegionStore.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/RegionStore.cpp b/clang/lib/StaticAnalyzer/Core/RegionStore.cpp index 00a6f711904..2a3319bc042 100644 --- a/clang/lib/StaticAnalyzer/Core/RegionStore.cpp +++ b/clang/lib/StaticAnalyzer/Core/RegionStore.cpp @@ -1497,7 +1497,7 @@ SVal RegionStoreManager::getBindingForElement(RegionBindingsConstRef B, // FIXME: Handle loads from strings where the literal is treated as // an integer, e.g., *((unsigned int*)"hello") QualType T = Ctx.getAsArrayType(StrR->getValueType())->getElementType(); - if (T != Ctx.getCanonicalType(R->getElementType())) + if (!Ctx.hasSameUnqualifiedType(T, R->getElementType())) return UnknownVal(); const StringLiteral *Str = StrR->getStringLiteral(); |