[PATCH] D129737: [analyzer] Fixing SVal::getType returns Null Type for NonLoc::ConcreteInt in boolean type
Ella Ma via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 14 07:06:54 PDT 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG32fe1a4be95c: [analyzer] Fixing SVal::getType returns Null Type for NonLoc::ConcreteInt in… (authored by OikawaKirie).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129737/new/
https://reviews.llvm.org/D129737
Files:
clang/lib/StaticAnalyzer/Core/SVals.cpp
clang/unittests/StaticAnalyzer/SValTest.cpp
Index: clang/unittests/StaticAnalyzer/SValTest.cpp
===================================================================
--- clang/unittests/StaticAnalyzer/SValTest.cpp
+++ clang/unittests/StaticAnalyzer/SValTest.cpp
@@ -161,6 +161,7 @@
void foo() {
int x = 42;
int *y = nullptr;
+ bool z = true;
})") {
SVal X = getByName("x");
ASSERT_FALSE(X.getType(Context).isNull());
@@ -170,6 +171,10 @@
ASSERT_FALSE(Y.getType(Context).isNull());
expectSameSignAndBitWidth(Context.getUIntPtrType(), Y.getType(Context),
Context);
+
+ SVal Z = getByName("z");
+ ASSERT_FALSE(Z.getType(Context).isNull());
+ EXPECT_EQ(Context.BoolTy, Z.getType(Context));
}
SVAL_TEST(GetLocAsIntType, R"(
Index: clang/lib/StaticAnalyzer/Core/SVals.cpp
===================================================================
--- clang/lib/StaticAnalyzer/Core/SVals.cpp
+++ clang/lib/StaticAnalyzer/Core/SVals.cpp
@@ -136,6 +136,8 @@
}
template <class ConcreteInt> QualType VisitConcreteInt(ConcreteInt CI) {
const llvm::APSInt &Value = CI.getValue();
+ if (1 == Value.getBitWidth())
+ return Context.BoolTy;
return Context.getIntTypeForBitwidth(Value.getBitWidth(), Value.isSigned());
}
QualType VisitLocConcreteInt(loc::ConcreteInt CI) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D129737.444649.patch
Type: text/x-patch
Size: 1288 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220714/23f3f93d/attachment.bin>
More information about the cfe-commits
mailing list