[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Arseniy Zaostrovnykh via cfe-commits
@@ -50,31 +50,10 @@ void test2() { b = d; a -= d; - if (a != 0) -return; - - clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} + clang_analyzer_warnIfReached(); // expected-warning {{REACHABLE}} - /* The BASELINE passes these checks ('wrning' is us

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Balazs Benics via cfe-commits
@@ -50,31 +50,10 @@ void test2() { b = d; a -= d; - if (a != 0) -return; - - clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} + clang_analyzer_warnIfReached(); // expected-warning {{REACHABLE}} - /* The BASELINE passes these checks ('wrning' is us

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Balazs Benics via cfe-commits
https://github.com/steakhal updated https://github.com/llvm/llvm-project/pull/112583 >From dfb86a3ddad88a9a97fff054af1bf86d746ee49d Mon Sep 17 00:00:00 2001 From: Balazs Benics Date: Wed, 16 Oct 2024 15:52:31 +0200 Subject: [PATCH] [analyzer][Solver] Improve getSymVal and friends (1/2) Instead

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Arseniy Zaostrovnykh via cfe-commits
https://github.com/necto approved this pull request. https://github.com/llvm/llvm-project/pull/112583 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Arseniy Zaostrovnykh via cfe-commits
@@ -1939,11 +1956,8 @@ class RangeConstraintManager : public RangedConstraintManager { RangeSet::Factory F; RangeSet getRange(ProgramStateRef State, SymbolRef Sym); - RangeSet getRange(ProgramStateRef State, EquivalenceClass Class); ProgramStateRef setRange(ProgramSta

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Donát Nagy via cfe-commits
@@ -2883,22 +2883,16 @@ const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, const llvm::APSInt *RangeConstraintManager::getSymMinVal(ProgramStateRef St, SymbolRef Sym) const { - // TODO: Use `getR

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Balazs Benics via cfe-commits
@@ -2883,22 +2883,16 @@ const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, const llvm::APSInt *RangeConstraintManager::getSymMinVal(ProgramStateRef St, SymbolRef Sym) const { - // TODO: Use `getR

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Balazs Benics via cfe-commits
@@ -2883,22 +2883,16 @@ const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, const llvm::APSInt *RangeConstraintManager::getSymMinVal(ProgramStateRef St, SymbolRef Sym) const { - // TODO: Use `getR

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Donát Nagy via cfe-commits
https://github.com/NagyDonat approved this pull request. LGTM, thanks for the updates! I have an optional suggestion/question in the only inline discussion that's left unresolved, but feel free to merge this without handling that. https://github.com/llvm/llvm-project/pull/112583 __

[clang] [analyzer] Improve solver (PR #112583)

2024-10-18 Thread Donát Nagy via cfe-commits
@@ -177,7 +177,8 @@ BugReportPtr BitwiseShiftValidator::checkOvershift() { RightOpStr = formatv(" '{0}'", ConcreteRight->getValue()); else { SValBuilder &SVB = Ctx.getSValBuilder(); -if (const llvm::APSInt *MinRight = SVB.getMinValue(FoldedState, Right)) { +if

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Balazs Benics via cfe-commits
https://github.com/steakhal updated https://github.com/llvm/llvm-project/pull/112583 >From 4bf74c7f9caf89b67e6001b601f70741c1a672cc Mon Sep 17 00:00:00 2001 From: Balazs Benics Date: Wed, 16 Oct 2024 15:52:31 +0200 Subject: [PATCH 1/7] [analyzer][Solver] Improve getSymVal and friends Instead o

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Balazs Benics via cfe-commits
https://github.com/steakhal updated https://github.com/llvm/llvm-project/pull/112583 >From 4bf74c7f9caf89b67e6001b601f70741c1a672cc Mon Sep 17 00:00:00 2001 From: Balazs Benics Date: Wed, 16 Oct 2024 15:52:31 +0200 Subject: [PATCH 1/7] [analyzer][Solver] Improve getSymVal and friends Instead o

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Balazs Benics via cfe-commits
@@ -2883,22 +2883,16 @@ const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, const llvm::APSInt *RangeConstraintManager::getSymMinVal(ProgramStateRef St, SymbolRef Sym) const { - // TODO: Use `getR

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
@@ -2883,22 +2883,16 @@ const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, const llvm::APSInt *RangeConstraintManager::getSymMinVal(ProgramStateRef St, SymbolRef Sym) const { - // TODO: Use `getR

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
@@ -2866,12 +2877,14 @@ ConditionTruthVal RangeConstraintManager::checkNull(ProgramStateRef State, const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, SymbolRef Sym) const { - const RangeSet *T = get

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Balazs Benics via cfe-commits
https://github.com/steakhal updated https://github.com/llvm/llvm-project/pull/112583 >From 4bf74c7f9caf89b67e6001b601f70741c1a672cc Mon Sep 17 00:00:00 2001 From: Balazs Benics Date: Wed, 16 Oct 2024 15:52:31 +0200 Subject: [PATCH 1/5] [analyzer][Solver] Improve getSymVal and friends Instead o

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
@@ -1485,6 +1487,18 @@ class SymbolicRangeInferrer Sym->getType()); } + std::optional getRangeCommutativeSymSym(const SymSymExpr *SSE) { +bool IsCommutative = llvm::is_contained({BO_Add, BO_Mul}, SSE->getOpcode()); +if (!IsCommutative) + return std::nu

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Balazs Benics via cfe-commits
@@ -2866,12 +2877,14 @@ ConditionTruthVal RangeConstraintManager::checkNull(ProgramStateRef State, const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, SymbolRef Sym) const { - const RangeSet *T = get

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Balazs Benics via cfe-commits
@@ -1485,6 +1487,18 @@ class SymbolicRangeInferrer Sym->getType()); } + std::optional getRangeCommutativeSymSym(const SymSymExpr *SSE) { +bool IsCommutative = llvm::is_contained({BO_Add, BO_Mul}, SSE->getOpcode()); +if (!IsCommutative) + return std::nu

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
https://github.com/NagyDonat requested changes to this pull request. (The "approve mark" was accidental, this should not be merged without fixing the trivial mistake that hardcodes addition.) https://github.com/llvm/llvm-project/pull/112583 ___ cfe-co

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
@@ -2866,12 +2877,14 @@ ConditionTruthVal RangeConstraintManager::checkNull(ProgramStateRef State, const llvm::APSInt *RangeConstraintManager::getSymVal(ProgramStateRef St, SymbolRef Sym) const { - const RangeSet *T = get

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
@@ -1485,6 +1487,18 @@ class SymbolicRangeInferrer Sym->getType()); } + std::optional getRangeCommutativeSymSym(const SymSymExpr *SSE) { +bool IsCommutative = llvm::is_contained({BO_Add, BO_Mul}, SSE->getOpcode()); +if (!IsCommutative) + return std::nu

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
@@ -50,28 +50,17 @@ void test2() { b = d; a -= d; + clang_analyzer_warnIfReached(); // expected-warning {{REACHABLE}} + if (a != 0) return; - clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} - - /* The BASELINE passes these checks ('wrning' is

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
https://github.com/NagyDonat approved this pull request. LGTM overall, see inline remarks for details. https://github.com/llvm/llvm-project/pull/112583 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listi

[clang] [analyzer] Improve solver (PR #112583)

2024-10-17 Thread Donát Nagy via cfe-commits
https://github.com/NagyDonat edited https://github.com/llvm/llvm-project/pull/112583 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [analyzer] Improve solver (PR #112583)

2024-10-16 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-static-analyzer-1 Author: Balazs Benics (steakhal) Changes This PR should be review commit by commit, and ought to be rebase-merged. See the individual commits for their summary. Once these two commits are reviewed, I'll force push to this PR the

[clang] [analyzer] Improve solver (PR #112583)

2024-10-16 Thread Balazs Benics via cfe-commits
https://github.com/steakhal created https://github.com/llvm/llvm-project/pull/112583 This PR should be review commit by commit, and ought to be rebase-merged. See the individual commits for their summary. Once these two commits are reviewed, I'll force push to this PR the first commit, and ope