https://github.com/NagyDonat closed
https://github.com/llvm/llvm-project/pull/130985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
> I'm somewhat unsatisfied, but it's not because of this PR. This is an
> excellent way forward, I just wish we had a better abstraction.
I agree that the architecture that's being formalized by this commit is not
perfect.
If I would be reimplementing a static analyzer from z
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy ,
=?utf-8?q?Don=C3=A1t?= Nagy
Message-ID:
In-Reply-To:
ht
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/130985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -190,23 +203,38 @@ class CheckerManager {
// Checker registration.
//======//
- /// Used to register checkers.
- /// All arguments are automatically passed through to the checker
- /// constructor.
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/130985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NagyDonat wrote:
The reason why I the support for multiple `RegisteredNames` instead of a single
`Name` is directly introduced within `CheckerBase` is that this significantly
simplifies the implementation. [1]
However if you wish so I could easily introduce a `static_assert` which ensures
tha
@@ -35,9 +35,10 @@ class DivZeroChecker : public
Checker> {
public:
/// This checker class implements several user facing checkers
enum CheckKind { CK_DivideZero, CK_TaintedDivChecker, CK_NumCheckKinds };
- bool ChecksEnabled[CK_NumCheckKinds] = {false};
- CheckerNameRef
@@ -485,16 +485,60 @@ class Call {
} // end eval namespace
class CheckerBase : public ProgramPointTag {
- CheckerNameRef Name;
+ /// A single checker class (i.e. a subclass of `CheckerBase`) can implement
+ /// multiple user-facing checkers that have separate names and can
@@ -35,9 +35,10 @@ class DivZeroChecker : public
Checker> {
public:
/// This checker class implements several user facing checkers
enum CheckKind { CK_DivideZero, CK_TaintedDivChecker, CK_NumCheckKinds };
- bool ChecksEnabled[CK_NumCheckKinds] = {false};
- CheckerNameRef
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/130985
From 895b6947690ec51d8e8bccfa09420afae4449343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Mon, 3 Mar 2025 15:33:44 +0100
Subject: [PATCH 01/10] [NFC][analyzer] Framework for multipart ch
@@ -190,23 +203,38 @@ class CheckerManager {
// Checker registration.
//======//
- /// Used to register checkers.
- /// All arguments are automatically passed through to the checker
- /// constructor.
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/130985
From 895b6947690ec51d8e8bccfa09420afae4449343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Mon, 3 Mar 2025 15:33:44 +0100
Subject: [PATCH 1/9] [NFC][analyzer] Framework for multipart chec
@@ -116,6 +116,19 @@ class CheckerNameRef {
operator StringRef() const { return Name; }
};
+/// A single checker class (and its singleton instance) can act as the
+/// implementation of several (user-facing or modeling) checker parts that
+/// have shared state and logic, bu
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/130985
From 895b6947690ec51d8e8bccfa09420afae4449343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Mon, 3 Mar 2025 15:33:44 +0100
Subject: [PATCH 1/7] [NFC][analyzer] Framework for multipart chec
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/130985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -190,23 +203,38 @@ class CheckerManager {
// Checker registration.
//======//
- /// Used to register checkers.
- /// All arguments are automatically passed through to the checker
- /// constructor.
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/130985
___
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/130985
___
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/130985
___
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/130985
___
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/130985
___
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/130985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy
Message-ID:
In-Reply-To:
@@ -35,9 +35,10 @@ class DivZeroChecker : public
Checker> {
public:
/// This checker class implements several user facing checkers
enum CheckKind { CK_DivideZero, CK_Tainte
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy
Message-ID:
In-Reply-To:
@@ -190,23 +203,38 @@ class CheckerManager {
// Checker registration.
//======//
- /// Used to registe
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy
Message-ID:
In-Reply-To:
@@ -190,23 +203,38 @@ class CheckerManager {
// Checker registration.
//======//
- /// Used to registe
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy
Message-ID:
In-Reply-To:
@@ -116,6 +116,19 @@ class CheckerNameRef {
operator StringRef() const { return Name; }
};
+/// A single checker class (and its singleton instance) can act as the
+/// implem
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy ,
=?utf-8?q?Donát?= Nagy
Message-ID:
In-Reply-To:
@@ -485,16 +485,60 @@ class Call {
} // end eval namespace
class CheckerBase : public ProgramPointTag {
- CheckerNameRef Name;
+ /// A single checker class (i.e. a subclass o
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/130985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
=?utf-8?q?Donát?= Nagy
Message-ID:
In-Reply-To:
llvmbot wrote:
@llvm/pr-subscribers-clang
Author: Donát Nagy (NagyDonat)
Changes
In the static analyzer codebase we have a traditional pattern where a single
checker class (and its singleton instance) acts as the implementation of
severa
https://github.com/NagyDonat edited
https://github.com/llvm/llvm-project/pull/130985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -485,16 +485,60 @@ class Call {
} // end eval namespace
class CheckerBase : public ProgramPointTag {
- CheckerNameRef Name;
+ /// A single checker class (i.e. a subclass of `CheckerBase`) can implement
+ /// multiple user-facing checkers that have separate names and can
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/130985
From 895b6947690ec51d8e8bccfa09420afae4449343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Mon, 3 Mar 2025 15:33:44 +0100
Subject: [PATCH 1/4] [NFC][analyzer] Framework for multipart chec
https://github.com/NagyDonat updated
https://github.com/llvm/llvm-project/pull/130985
From 895b6947690ec51d8e8bccfa09420afae4449343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Don=C3=A1t=20Nagy?=
Date: Mon, 3 Mar 2025 15:33:44 +0100
Subject: [PATCH 1/3] [NFC][analyzer] Framework for multipart chec
https://github.com/NagyDonat created
https://github.com/llvm/llvm-project/pull/130985
In the static analyzer codebase we have a traditional pattern where a single
checker class (and its singleton instance) acts as the implementation of
several (user-facing or modeling) checkers that have share
=?utf-8?q?Donát?= Nagy
Message-ID:
In-Reply-To:
github-actions[bot] wrote:
:warning: C/C++ code formatter, clang-format found issues in your code.
:warning:
You can test this locally with the following command:
``bash
git-clang-format --diff 72ee9b82151f17d6bd37abc501124d46c1c
36 matches
Mail list logo