https://github.com/NagyDonat created
https://github.com/llvm/llvm-project/pull/144735
This commit converts the class DynamicTypePropagation to a very simple checker
family, which has only one checker frontend -- but also supports enabling the
backend ("modeling checker") without the frontend.
NagyDonat wrote:
> > > How I read this you have mainly 2 concerns:
> > >
> > > 1. The use of this strong-type makes it tedious the existing APIs to use
> > > because one needs to unwrap the value and frequently make an early-return
> > > to explicitly handle the case when a symbol-creation fai
NagyDonat wrote:
> How I read this you have mainly 2 concerns:
>
> 1. The use of this strong-type makes it tedious the existing APIs to use
> because one needs to unwrap the value and frequently make an early-return to
> explicitly handle the case when a symbol-creation failed?
Yes, this
NagyDonat wrote:
@steakhal Thanks for spotting these broken lines – these blocks were
automatically reformatted by `git-clang-format` and I didn't notice that it
misformats this kind of content.
https://github.com/llvm/llvm-project/pull/143735
___
cf
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/143735
From 2f0abfe5e306072fc56ca93a570c58f2b9a2c967 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Wed, 11 Jun 2025 17:31:43 +0200
Subject: [PATCH 1/2] [analyzer] Conversion to CheckerFamily:
Nu
https://github.com/NagyDonat approved this pull request.
LGTM, nice little patch :smile:
https://github.com/llvm/llvm-project/pull/144341
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/144327
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -317,21 +317,21 @@ class SValBuilder {
return nonloc::LocAsInteger(BasicVals.getPersistentSValWithData(loc,
bits));
}
- nonloc::SymbolVal makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
- APSIntPtr rhs, QualType type);
+ Defi
https://github.com/NagyDonat commented:
Unfortunately I'm not convinced that this is the right direction for improving
the analyzer runtime.
On the "risks" side I think that adding the corner case that "this may also
return `UnknownVal` in rare situations" into many functions complicates the
@@ -113,25 +114,21 @@ class NullabilityChecker
void printState(raw_ostream &Out, ProgramStateRef State, const char *NL,
const char *Sep) const override;
- enum CheckKind {
-CK_NullPassedToNonnull,
-CK_NullReturnedFromNonnull,
-CK_NullableDerefe
https://github.com/NagyDonat approved this pull request.
LGTM but wait for the opinion of @steakhal as well.
(By the way, after tweaking the testcase, did you check that it would still
crash without the improvements of the commit?)
https://github.com/llvm/llvm-project/pull/143310
_
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/143735
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/143735
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
I introduced the new "checker family" framework for the multipart checkers, so
now this PR is superseded by https://github.com/llvm/llvm-project/pull/143735
which converts NullabilityChecker to _that_ framework.
https://github.com/llvm/llvm-project/pull/132250
https://github.com/NagyDonat closed
https://github.com/llvm/llvm-project/pull/132250
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -710,29 +706,28 @@ void NullabilityChecker::checkPreStmt(const ReturnStmt *S,
Nullability RetExprTypeLevelNullability =
getNullabilityAnnotation(lookThroughImplicitCasts(RetExpr)->getType());
- bool NullReturnedFromNonNull = (RequiredNullability == Nullability::N
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/143310
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/143310
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/143310
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -570,23 +572,35 @@ class SMTConv {
// TODO: Refactor to put elsewhere
static inline QualType getAPSIntType(ASTContext &Ctx,
const llvm::APSInt &Int) {
-return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned());
+Qu
@@ -570,23 +572,35 @@ class SMTConv {
// TODO: Refactor to put elsewhere
static inline QualType getAPSIntType(ASTContext &Ctx,
const llvm::APSInt &Int) {
-return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned());
+Qu
@@ -570,23 +572,35 @@ class SMTConv {
// TODO: Refactor to put elsewhere
static inline QualType getAPSIntType(ASTContext &Ctx,
const llvm::APSInt &Int) {
-return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned());
+Qu
@@ -570,23 +572,35 @@ class SMTConv {
// TODO: Refactor to put elsewhere
static inline QualType getAPSIntType(ASTContext &Ctx,
const llvm::APSInt &Int) {
-return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned());
+Qu
https://github.com/NagyDonat commented:
Thanks for the updates! I added a few more style nitpicks, but overall LGTM.
https://github.com/llvm/llvm-project/pull/143310
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin
@@ -0,0 +1,23 @@
+// RUN: %clang_cc1 -analyze -analyzer-checker=core -w -DNO_CROSSCHECK -verify
%s
+// RUN: %clang_cc1 -analyze -analyzer-checker=core -w -analyzer-config
crosscheck-with-z3=true -verify %s
+// REQUIRES: z3
+
+// The SMTConv layer did not comprehend _BitInt types
@@ -577,16 +577,16 @@ class SMTConv {
// Get the bit size and round up to next power of 2, max char size
if (Ty.isNull()) {
unsigned CharTypeSize = Ctx.getTypeSize(Ctx.CharTy);
- unsigned pow2DestWidth =
+ unsigned Pow2DestWidth =
std::max(llv
@@ -601,8 +601,8 @@ class SMTConv {
if (APSIntBitwidth == 1 && Ty.isNull()) {
NewInt = Int.extend(Ctx.getTypeSize(Ctx.BoolTy));
Ty = getAPSIntType(Ctx, NewInt);
-} else if (!IsPower2(APSIntBitwidth) && !getAPSIntType(Ctx, Int).isNull())
{
- Ty = getAPS
@@ -570,23 +572,42 @@ class SMTConv {
// TODO: Refactor to put elsewhere
static inline QualType getAPSIntType(ASTContext &Ctx,
const llvm::APSInt &Int) {
-return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned());
+Qu
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/143310
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -570,23 +572,42 @@ class SMTConv {
// TODO: Refactor to put elsewhere
static inline QualType getAPSIntType(ASTContext &Ctx,
const llvm::APSInt &Int) {
-return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned());
+Qu
https://github.com/NagyDonat commented:
The approach of the commit seems to be good. If the tests are passing with this
commit, while they were crashing without it, then I don't see any significant
obstacles.
I added a few nitpicks in inline comments, please have a look at them.
https://githu
@@ -570,23 +572,42 @@ class SMTConv {
// TODO: Refactor to put elsewhere
static inline QualType getAPSIntType(ASTContext &Ctx,
const llvm::APSInt &Int) {
-return Ctx.getIntTypeForBitwidth(Int.getBitWidth(), Int.isSigned());
+Qu
https://github.com/NagyDonat closed
https://github.com/llvm/llvm-project/pull/142980
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
The validation on our set of open source projects was successful, I'm merging
this now.
https://github.com/llvm/llvm-project/pull/142980
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/li
https://github.com/NagyDonat created
https://github.com/llvm/llvm-project/pull/142980
Previously some checkers attached explicitly created program point tags to some
of the exploded graph nodes that they created. In most of the checkers this
ad-hoc tagging only affected the debug dump of the e
https://github.com/NagyDonat closed
https://github.com/llvm/llvm-project/pull/142132
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
I tested this commit on open source projects and as expected, there were no new
crashes or result changes.
https://github.com/llvm/llvm-project/pull/142132
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org
https://github.com/NagyDonat created
https://github.com/llvm/llvm-project/pull/142132
By design the `Location` data member of a `CheckerContext` is always a
`ProgramPoint` which is tagged with the currently active checker (note that all
checker classes are subclasses of `ProgramPointTag`). Thi
https://github.com/NagyDonat ready_for_review
https://github.com/llvm/llvm-project/pull/142132
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/142132
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/142132
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat commented:
@steakhal Thanks for the updates, I'm completely satisfied with them.
I don't see any connection between this commit and the buildbot failures
:thinking: ... they are probably unrelated.
https://github.com/llvm/llvm-project/pull/140924
__
@@ -0,0 +1,357 @@
+//===- unittests/StaticAnalyzer/BlockEntranceCallbackTest.cpp
-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
https://github.com/NagyDonat approved this pull request.
I also read the tests and the change LGTM if you move the explanations from the
very helpful review comments
https://github.com/llvm/llvm-project/pull/140924/files#r2107471659 and
https://github.com/llvm/llvm-project/pull/140924/files#r2
NagyDonat wrote:
Oops, forgot to update the title before merging, so it still refers to
`getDebugName` :sweat:
https://github.com/llvm/llvm-project/pull/141511
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mai
https://github.com/NagyDonat closed
https://github.com/llvm/llvm-project/pull/141511
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/140924
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,357 @@
+//===- unittests/StaticAnalyzer/BlockEntranceCallbackTest.cpp
-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
@@ -166,6 +179,23 @@ class CheckerDocumentation
/// check::Bind
void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &) const {}
+ /// Called after a CFG edge is taken within a function.
+ ///
+ /// This callback can be used to obtain information about poten
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/140924
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/141511
From e19773f3a1c52213ec1afe5329c2715b6119ed33 Mon Sep 17 00:00:00 2001
From: Balazs Benics
Date: Thu, 15 May 2025 19:44:55 +0200
Subject: [PATCH 1/2] [NFC][analyzer] Rename getTagDescription to getDebugName
-
NagyDonat wrote:
> In hind sight, maybe "debugTag" is the best of both worlds. WDYT?
Why not :smile: ?
https://github.com/llvm/llvm-project/pull/141511
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/list
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/140924
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -548,6 +564,8 @@ class CheckerProgramPointTag : public SimpleProgramPointTag
{
template
class Checker : public CHECK1, public CHECKs..., public CheckerBase {
public:
+ using BlockEntrance = clang::BlockEntrance;
NagyDonat wrote:
> As I was thinking about
https://github.com/NagyDonat ready_for_review
https://github.com/llvm/llvm-project/pull/141511
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat created
https://github.com/llvm/llvm-project/pull/141511
None
From e19773f3a1c52213ec1afe5329c2715b6119ed33 Mon Sep 17 00:00:00 2001
From: Balazs Benics
Date: Thu, 15 May 2025 19:44:55 +0200
Subject: [PATCH] [NFC][analyzer] Rename getTagDescription to getDebugName
https://github.com/NagyDonat closed
https://github.com/llvm/llvm-project/pull/139256
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -166,6 +179,23 @@ class CheckerDocumentation
/// check::Bind
void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &) const {}
+ /// Called after a CFG edge is taken within a function.
+ ///
+ /// This callback can be used to obtain information about poten
NagyDonat wrote:
I reverted this PR to an earlier stage and added a more verbose explanation for
the (current) requirement that classes derived from `CheckerFamily` need to
override `getTagDescription`.
@steakhal In addition to the other changes, I also reverted commit
https://github.com/llv
@@ -548,6 +564,8 @@ class CheckerProgramPointTag : public SimpleProgramPointTag
{
template
class Checker : public CHECK1, public CHECKs..., public CheckerBase {
public:
+ using BlockEntrance = clang::BlockEntrance;
NagyDonat wrote:
Why is this `using` requi
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/140924
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat commented:
I finished reviewing the non-test code and overall it LGTM, but I added two
minor questions as inline comments. I'll review the tests tomorrow.
https://github.com/llvm/llvm-project/pull/140924
___
cfe-commits ma
NagyDonat wrote:
Thanks for your understanding – and sorry for stretching this review process
for so long.
I will push and merge the reduced commit on Monday (to be able to follow up its
effect in the CI). I will probably also create a spinoff PR that contains some
minor NFC code quality impr
NagyDonat wrote:
> I don't think I have time for this. I'm really sorry. I read the first couple
> paragraphs then gave up. I'm really short of time.
The two commits made sense. And resolved most if not all of my major concerns.
I see, and I understand that this review process became much longe
https://github.com/NagyDonat commented:
LGTM, straightforward simple extension.
https://github.com/llvm/llvm-project/pull/140861
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NagyDonat approved this pull request.
https://github.com/llvm/llvm-project/pull/140861
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
I have yet another implementation idea where:
- boilerplate is either minimal or nonexistent;
- there is no need to pass an additional string value (the debug name) through
the checker registry code;
- the debug name is guaranteed to be the same as the class name.
The minimal-b
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/139256
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -115,9 +115,22 @@ class CheckerRegistry {
public:
/// Adds a checker to the registry. Use this non-templated overload when your
/// checker requires custom initialization.
- void addChecker(RegisterCheckerFn Fn, ShouldRegisterFunction sfn,
+ void addChecker(RegisterChe
NagyDonat wrote:
> I'm happy as this PR looks right now, except for having that backward
> compatibility overload for plugins.
> We can just move on with life and let them migrate once the next clang is
> out. To me, the upgrade path looks straightforward and this isn't the only
> API they wil
@@ -115,9 +115,22 @@ class CheckerRegistry {
public:
/// Adds a checker to the registry. Use this non-templated overload when your
/// checker requires custom initialization.
- void addChecker(RegisterCheckerFn Fn, ShouldRegisterFunction sfn,
+ void addChecker(RegisterChe
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139256
From 3bead14691a29482705c76951eaed176bfbfc996 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Thu, 8 May 2025 18:46:41 +0200
Subject: [PATCH 01/12] [analyzer][NFC] Introduce framework for ch
https://github.com/NagyDonat approved this pull request.
LGTM. I'm happy to see that this change simplifies the logic and moves several
scattered stacktrace helpers to a common location.
https://github.com/llvm/llvm-project/pull/140035
___
cfe-commits
@@ -115,9 +115,22 @@ class CheckerRegistry {
public:
/// Adds a checker to the registry. Use this non-templated overload when your
/// checker requires custom initialization.
- void addChecker(RegisterCheckerFn Fn, ShouldRegisterFunction sfn,
+ void addChecker(RegisterChe
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/139256
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
In commit
https://github.com/llvm/llvm-project/pull/139256/commits/13f4a3011e76c5665ca295ef597eb130f356df68
I implemented your suggestion that the debug name of the checker name should
be derived from the name fragment of the registration functions (which is
called `CLASS` bu
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139256
From 3bead14691a29482705c76951eaed176bfbfc996 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Thu, 8 May 2025 18:46:41 +0200
Subject: [PATCH 01/11] [analyzer][NFC] Introduce framework for ch
NagyDonat wrote:
> First, let's align on why we currently have the concept of "modeling" and
> "reporting" checkers. I think you are probably already aware of this, but
> let's clarify this.
>
> It's a great property if the exploded graph remains sort of the same no
> matter what checkers are
NagyDonat wrote:
You're right, repeating the same measurement produced significantly different
results:
| Project | before this PR | this PR | Ratio |
| --- | --- | --- | --- |
| memcached | 25.70 | 28.12 | 109.4% |
| tmux | 74.18 | 74.30 | 100.2% |
| curl | 219.55 | 217.06 | 98.9% |
| twin | 5
NagyDonat wrote:
> RT is not a concern to me in this case.
The reason why I decided to check the runtime is because you said that "It not
only simplifies it but also makes if faster. " in an earlier commit.
My first runtime measurement finished and unfortunately it seems that this PR
somehow
NagyDonat wrote:
## Accommodating the modeling checkers in the checker family framework
_I thought a bit about the place of the modeling checkers in the checker family
framework (which is introduced in this PR). This question is a bit
architectural, so in theory this post would "belong to" dis
https://github.com/NagyDonat approved this pull request.
LGTM if you implement the changes suggested by EugeneZelenko.
https://github.com/llvm/llvm-project/pull/140086
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-b
NagyDonat wrote:
> I'd recommend you to look at the `Checkers.inc` file in the build folder
> somewhere - the file that gets generated from the `Checkers.td`. Notice that
> every checker has a `registerXXX` and `shouldRegisterXXX` function where XXX
> is the verbatim spelling of the checker cl
NagyDonat wrote:
> I think the order is deterministic, and due to how checker dependencies are
> resolved, the backend checker would be always the one that is registered
> first. I have not checked this.
You're correct wrt the current state of the code but I'm planning to get rid of
many "bac
NagyDonat wrote:
I started a measurement on open source projects to see the effect of this
change on the (total) analysis runtime. I don't expect much but if this turns
out to be non-negligible, then I will prioritize this direction.
https://github.com/llvm/llvm-project/pull/139939
___
NagyDonat wrote:
:thinking: These strings are only relevant for debugging, so this whole
machinery could be limited to debug builds (or builds with an off-by-default
flag). That way these debug names would be still available for the very
specific situation when somebody is debugging the analyz
NagyDonat wrote:
I prototyped a "get the name of template argument as string" solution which is
sufficient for our use cases (where the checker family is a non-templated class
type) and works on all supported versions of all three compilers (GCC, clang,
MSVC) that are supported for LLVM compil
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139939
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans
@@ -4096,7 +4096,8 @@ std::string ExprEngine::DumpGraph(bool trim, StringRef
Filename) {
std::string ExprEngine::DumpGraph(ArrayRef Nodes,
StringRef Filename) {
- std::unique_ptr TrimmedG(G.trim(Nodes));
+ TrimGraphWorklist Worklist{Nodes};
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139939
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/139939
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
I pushed a heap of small commits which do various simple cleanup in this
neighborhood.
> If we could harden the bug EQclass part for deterministically selecting the
> sequence of the bug reports we would try, that would make the outcomes stable
> no matt
@@ -2633,7 +2633,8 @@ BugPathGetter::BugPathGetter(const ExplodedGraph
*OriginalGraph,
assert(I->isValid() &&
"We only allow BugReporterVisitors and BugReporter itself to "
"invalidate reports!");
-Nodes.emplace_back(I->getErrorNode());
+if (c
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139939
From 8a33087fcd94d326cac602a6be83a1b34b43e1ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Wed, 14 May 2025 19:24:37 +0200
Subject: [PATCH 01/10] [WIP][analyzer] Refactor `ExplodedGraph::
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139939
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans
@@ -479,25 +479,20 @@ ExplodedGraph::trim(ArrayRef Sinks,
// in the trimmed graph, then add the corresponding edges with
// `addPredecessor()`, otherwise add them to the worklist.
for (const ExplodedNode *Pred : N->Preds) {
- auto Iterator = ForwardMap->find(Pr
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139939
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans
@@ -442,109 +442,65 @@ std::unique_ptr
ExplodedGraph::trim(ArrayRef Sinks,
InterExplodedGraphMap *ForwardMap,
InterExplodedGraphMap *InverseMap) const {
- // FIXME: The two-pass algorithm of this function (which was introduced in
- // 2
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/139939
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans
NagyDonat wrote:
This is the cleanup of `ExplodedGraph::trim()` that I promised at
https://github.com/llvm/llvm-project/commit/31e981ca1dc323c8a32012cb60a0a8fe3985db1a.
This significantly simplifies the algorithm and should be equivalent in a
theoretical sense, but unfortunately it changes the
1 - 100 of 1242 matches
Mail list logo