aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUtils.cpp
diff options
context:
space:
mode:
authorvabridgers <58314289+vabridgers@users.noreply.github.com>2025-06-11 11:25:24 -0500
committerGitHub <noreply@github.com>2025-06-11 11:25:24 -0500
commitec8d68b59f82423e5a6bf452e33ee8c5f64b0edc (patch)
tree3de3f26abce2f4e14440f1533dac480e5067a9a5 /llvm/lib/Transforms/Utils/LoopUtils.cpp
parent8e4f0d8614dcd48cfe2d885a021e2927c1bc8616 (diff)
downloadllvm-ec8d68b59f82423e5a6bf452e33ee8c5f64b0edc.zip
llvm-ec8d68b59f82423e5a6bf452e33ee8c5f64b0edc.tar.gz
llvm-ec8d68b59f82423e5a6bf452e33ee8c5f64b0edc.tar.bz2
[clang][analyzer] Correct SMT Layer for _BitInt cases refutations (#143310)
Since _BitInt was added later, ASTContext did not comprehend getting a type by bitwidth that's not a power of 2, and the SMT layer also did not comprehend this. This led to unexpected crashes using Z3 refutation during randomized testing. The assertion and redacted and summarized crash stack is shown here. clang: ../../clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h:103: static llvm::SMTExprRef clang::ento::SMTConv::fromBinOp(llvm::SMTSolverRef &, const llvm::SMTExprRef &, const BinaryOperator::Opcode, const llvm::SMTExprRef &, bool): Assertion `*Solver->getSort(LHS) == *Solver->getSort(RHS) && "AST's must have the same sort!"' failed. ... <address> clang::ento::SMTConv::fromBinOp(std::shared_ptr<llvm::SMTSolver>&, llvm::SMTExpr const* const&, clang::BinaryOperatorKind, llvm::SMTExpr const* const&, bool) SMTConstraintManager.cpp clang::ASTContext&, llvm::SMTExpr const* const&, clang::QualType, clang::BinaryOperatorKind, llvm::SMTExpr const* const&, clang::QualType, clang::QualType*) SMTConstraintManager.cpp clang::ASTContext&, clang::ento::SymExpr const*, llvm::APSInt const&, llvm::APSInt const&, bool) SMTConstraintManager.cpp clang::ento::ExplodedNode const*, clang::ento::PathSensitiveBugReport&) --------- Co-authored-by: Vince Bridgers <vince.a.bridgers@ericsson.com>
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions