diff options
| author | vabridgers <58314289+vabridgers@users.noreply.github.com> | 2023-09-18 15:18:33 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-18 15:18:33 -0500 |
| commit | 4898c33527f90b067f353a115442a9a702319fce (patch) | |
| tree | 435fdd472575c0772beae65da5b1cfed771a9e99 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h | |
| parent | c7294486f3ee5f70a261ab78ab94e1490d87ebde (diff) | |
| download | llvm-4898c33527f90b067f353a115442a9a702319fce.zip llvm-4898c33527f90b067f353a115442a9a702319fce.tar.gz llvm-4898c33527f90b067f353a115442a9a702319fce.tar.bz2 | |
[analyzer] Fix crash analyzing _BitInt() in evalIntegralCast (#65887)
evalIntegralCast was using makeIntVal, and when _BitInt() types were
introduced this exposed a crash in evalIntegralCast as a result.
Improve evalIntegralCast to use makeIntVal more efficiently to avoid the
crash exposed by use of _BitInt.
This was caught with our internal randomized testing.
<src-root>/llvm/include/llvm/ADT/APInt.h:1510:
int64_t llvm::APInt::getSExtValue() const: Assertion
`getSignificantBits() <= 64 && "Too many bits for int64_t"' failed.a
...
#9 <address> llvm::APInt::getSExtValue() const
<src-root>/llvm/include/llvm/ADT/APInt.h:1510:5
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>,
clang::ento::SVal, clang::QualType, clang::QualType)
<src-root>/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp:607:24
clang::Expr const*, clang::ento::ExplodedNode*,
clang::ento::ExplodedNodeSet&)
<src-root>/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp:413:61
...
Fixes: https://github.com/llvm/llvm-project/issues/61960
Reviewed By: donat.nagy
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h')
0 files changed, 0 insertions, 0 deletions
