@@ -58,6 +63,106 @@ ast_matchers::StatementMatcher
isSmartPointerLikeOperatorArrow();
ast_matchers::StatementMatcher isSmartPointerLikeValueMethodCall();
ast_matchers::StatementMatcher isSmartPointerLikeGetMethodCall();
+// Common transfer functions.
+
+/// Returns the "canon
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/120249
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
> Yes, indeed the original match happens in separate context, but all contexts
> share one `NodesMap`, which values are overriden with a consecutive match
> ('clash').
I see -- I'd missed the reuse of the MatchResult. Now that I understand the
problem, I don't think that you're s
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From db206514c03a58065e24afccd55886a012b2abcc Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From 2273b56b783b7923108dbb3a5857d256fc4a44ca Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From 3792a385b1ecd2dd029fc6321bacac1de5d8eb46 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From 27ef09ae6f7a83fa3cf9ee98a46b02880607add8 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
https://github.com/ymand created
https://github.com/llvm/llvm-project/pull/120967
This PR has 2 related goals:
*Remove dependency on `llvm::Any`*. For some platforms, use of `llvm::Any`
forces users to explicitly define internal details related to `Any`. Aside from
aesthetics, this places an ob
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/120102
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,133 @@
+#include "clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h"
+
+#include "clang/AST/CanonicalType.h"
+#include "clang/AST/DeclCXX.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+#include "clang/Basic/OperatorKinds.h"
+
+namespace clang::dataflow {
+
+na
@@ -0,0 +1,134 @@
+#include "clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h"
+
+#include "clang/AST/CanonicalType.h"
+#include "clang/AST/DeclCXX.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+#include "clang/Basic/OperatorKinds.h"
+
+namespace clang::dataflow {
+
+na
@@ -0,0 +1,63 @@
+//===-- SmartPointerAccessorCaching.h ---*- C++
-*-===//
+//
+// 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: Apa
ymand wrote:
Gentle ping, since it's been a week since my last post.
https://github.com/llvm/llvm-project/pull/115051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
> > Can you expand on your concern about the clash?
>
> The clash is happening in `NodesMap`. See,
>
> 1. the matcher which is associated with `rewriteDescendants` gets "Tag0",
> 2. tags for matchers from `applyfirst` are shifted, they get "Tag1", ...
> 3. that is why `transformer:
ymand wrote:
> Without these changes a clash appears between a Tag, which is bound to
> enclosing match, and a Tag, which is associated with first Case of applyFirst
> in rewriteDescendands.
Can you expand on your concern about the clash? Your approach of using the
matcher ID seems like an im
@@ -143,6 +143,15 @@ const Formula &getFormula(const ValueDecl &D, const
Environment &Env) {
return cast(Env.getValue(D))->formula();
}
+const BindingDecl *findBindingDecl(const char *Name, ASTContext &ASTCtx) {
ymand wrote:
nit: Please use StringRef.
htt
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/117858
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -143,6 +143,15 @@ const Formula &getFormula(const ValueDecl &D, const
Environment &Env) {
return cast(Env.getValue(D))->formula();
}
+const BindingDecl *findBindingDecl(const char *Name, ASTContext &ASTCtx) {
ymand wrote:
why place this parameter second
ymand wrote:
> @ymand, could you please take a look?
Yes -- sorry, missed the notification. I'll try to review within 24h.
https://github.com/llvm/llvm-project/pull/117658
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/
ymand wrote:
This review has been going on for longer than a month so, as one of the
reviewers and the original author of this check, I wanted to jump in and see if
we can bring it to an agreeable conclusion. I’d like to start with some
background:
* This check was introduced in 2020 with the
ymand wrote:
> I am still confused why your team did not just disable this rule for test
> folder? It is normal cases that source code and test code have different
> quality metrics.
Our codebase doesn't use test folders. We have no foolproof way of
distinguishing code from test based on the
@@ -281,6 +282,17 @@ ReferencedDecls getReferencedDecls(const FunctionDecl &FD)
{
Visitor.TraverseStmt(FD.getBody());
if (const auto *CtorDecl = dyn_cast(&FD))
Visitor.traverseConstructorInits(CtorDecl);
+ if (const auto *Method = dyn_cast(&FD);
ymand
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/117771
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -146,6 +146,10 @@ struct ReferencedDecls {
/// Free functions and member functions which are referenced (but not
/// necessarily called).
llvm::DenseSet Functions;
+ /// Parameters of other functions, captured by reference by a lambda. This is
+ /// empty except when
@@ -146,6 +146,10 @@ struct ReferencedDecls {
/// Free functions and member functions which are referenced (but not
/// necessarily called).
llvm::DenseSet Functions;
+ /// Parameters of other functions, captured by reference by a lambda. This is
ymand w
@@ -281,6 +282,17 @@ ReferencedDecls getReferencedDecls(const FunctionDecl &FD)
{
Visitor.TraverseStmt(FD.getBody());
if (const auto *CtorDecl = dyn_cast(&FD))
Visitor.traverseConstructorInits(CtorDecl);
+ if (const auto *Method = dyn_cast(&FD);
ymand
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/117771
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand requested changes to this pull request.
I think the comments could be a bit stronger, but the code looks fine.
https://github.com/llvm/llvm-project/pull/117771
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lis
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/115051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/113922
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/113922
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/113698
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
> idk if this was kinda the explanation you were after or not
> https://discourse.llvm.org/t/supporting-llvm-build-llvm-dylib-on-windows/58891
Indeed, thank you!
https://github.com/llvm/llvm-project/pull/108051
___
cfe-commits mailing li
https://github.com/ymand approved this pull request.
Thanks for the discussion/explanation and the comments!
https://github.com/llvm/llvm-project/pull/108051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman
ymand wrote:
I discussed with other code owners -- we think our best option is to remove our
use of llvm::Any entirely. So, I think you can go ahead with the changes here
(no need for a new NoopLattice.cpp), but please add some comments explaining
what's going on (even a pointer to some explan
ymand wrote:
> > What are the implications/requirements for users of DataflowAnalysis? Every
> > instance specifices it's own lattice, which is converted to/from llvm::Any.
> > Will every lattice definition require these new declarations?
>
> If you think they will be used from external from t
https://github.com/ymand approved this pull request.
I would suggest a brief comment explaining the choice not to filter.
https://github.com/llvm/llvm-project/pull/112457
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cg
https://github.com/ymand approved this pull request.
Sorry for the delay! I missed the notification...
https://github.com/llvm/llvm-project/pull/107366
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listi
ymand wrote:
What are the implications/requirements for users of DataflowAnalysis? Every
instance specifices it's own lattice, which is converted to/from llvm::Any.
Will every lattice definition require these new declarations?
https://github.com/llvm/llvm-project/pull/108051
__
ymand wrote:
> @ymand, is your concern resolved?
Sorry, it isn't -- a) we still need comments with at least minimal explanation
and b) I'm not sure why the definition is now in TypeErasedDataflowAnalysis.cpp
-- is this because we lack NoopAnalysis.cpp? If so, why is
TypeErasedDataflowAnalysis
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/112605
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/112605
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -523,6 +544,99 @@ void transferCallReturningOptional(const CallExpr *E,
setHasValue(*Loc, State.Env.makeAtomicBoolValue(), State.Env);
}
+void handleConstMemberCall(const CallExpr *CE,
+ dataflow::RecordStorageLocation *RecordLoc,
+
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/111006
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,218 @@
+//===-- CachedConstAccessorsLattice.h ---*- C++
-*-===//
+//
+// 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
@@ -0,0 +1,218 @@
+//===-- CachedConstAccessorsLattice.h ---*- C++
-*-===//
+//
+// 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
@@ -0,0 +1,217 @@
+//===- unittests/Analysis/FlowSensitive/CachedConstAccessorsLatticeTest.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/ymand approved this pull request.
modulo the requests for tests. This looks great!
https://github.com/llvm/llvm-project/pull/111006
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listin
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/111006
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -28,12 +28,24 @@
#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
+#include "clang/Support/Compiler.h"
#include "llvm/ADT/STLExtras.h"
@@ -28,12 +28,24 @@
#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
+#include "clang/Support/Compiler.h"
#include "llvm/ADT/STLExtras.h"
https://github.com/ymand requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/108051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/110870
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/108215
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand closed https://github.com/llvm/llvm-project/pull/104459
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/104459
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
Looks good, but please add a test. Thanks!
https://github.com/llvm/llvm-project/pull/104459
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
Should we make this flag controlled? Or is the idea that analyses can simply
ignore the new `Locals` field?
https://github.com/llvm/llvm-project/pull/104459
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cg
ymand wrote:
https://github.com/llvm/llvm-project/pull/103219 has been merged as
https://github.com/llvm/llvm-project/commit/661dda9df13c65ce021407bb726b558c7a414731.
https://github.com/llvm/llvm-project/pull/102510
___
cfe-commits mailing list
cfe-co
https://github.com/ymand closed https://github.com/llvm/llvm-project/pull/103219
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/103219
>From cde9e0eb8090a95df22bc83527a68d385fa847a9 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Thu, 8 Aug 2024 14:22:03 -0300
Subject: [PATCH 1/4] [clang] Add frontend flag to enable support for broken
exter
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/103219
>From cde9e0eb8090a95df22bc83527a68d385fa847a9 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Thu, 8 Aug 2024 14:22:03 -0300
Subject: [PATCH 1/3] [clang] Add frontend flag to enable support for broken
exter
ymand wrote:
I've posted a fix as https://github.com/llvm/llvm-project/pull/103219
https://github.com/llvm/llvm-project/pull/102510
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand ready_for_review
https://github.com/llvm/llvm-project/pull/103219
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/103219
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/103219
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/103219
>From cde9e0eb8090a95df22bc83527a68d385fa847a9 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov
Date: Thu, 8 Aug 2024 14:22:03 -0300
Subject: [PATCH 1/2] [clang] Add frontend flag to enable support for broken
exter
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/103219
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand created
https://github.com/llvm/llvm-project/pull/103219
There are some external projects that can't rely on our own sugar
propagation for templated entities, because they need to resugar types
which only exist within their framework, and so are entirely invisible
to our
ymand wrote:
Gentle ping. It's critical that this land so we can unbreak our system. Thanks!
https://github.com/llvm/llvm-project/pull/102510
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-co
@@ -784,6 +814,12 @@ auto buildTransferMatchSwitch() {
isOptionalMemberCallWithNameMatcher(hasName("operator bool")),
transferOptionalHasValueCall)
+ // NullableValue::isNull
+ // Only NullableValue has isNull
+ .CaseOfCFGStmt(
+ isO
@@ -38,10 +38,22 @@
namespace clang {
namespace dataflow {
-static bool isTopLevelNamespaceWithName(const NamespaceDecl &NS,
-llvm::StringRef Name) {
- return NS.getDeclName().isIdentifier() && NS.getName() == Name &&
- NS.getPa
https://github.com/ymand requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/101450
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand closed https://github.com/llvm/llvm-project/pull/99519
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/99519
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/99519
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/95901
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/96731
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
Thanks! I'm once again struck by how much this project would benefit from
Nullability annotations/checking.
https://github.com/llvm/llvm-project/pull/94983
___
cfe-commits mailing list
cfe-commits@l
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/94963
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/94332
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/94217
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/93461
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/93461
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -188,90 +188,97 @@ static MemberExpr *getMemberForAccessor(const
CXXMemberCallExpr &C) {
return nullptr;
}
-static void getReferencedDecls(const Decl &D, ReferencedDecls &Referenced) {
- insertIfGlobal(D, Referenced.Globals);
- insertIfFunction(D, Referenced.Functions)
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/93461
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/92401
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand closed https://github.com/llvm/llvm-project/pull/91616
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/91616
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -476,7 +476,7 @@ runTypeErasedDataflowAnalysis(
PrettyStackTraceAnalysis CrashInfo(ACFG, "runTypeErasedDataflowAnalysis");
std::optional MaybeStartingEnv;
- if (InitEnv.callStackSize() == 1) {
+ if (InitEnv.callStackSize() == 0) {
ymand wrote:
aside:
https://github.com/ymand approved this pull request.
Nice!
https://github.com/llvm/llvm-project/pull/91616
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -718,29 +730,46 @@ class Environment {
void pushCallInternal(const FunctionDecl *FuncDecl,
ArrayRef Args);
+ // FIXME: Add support for resetting globals after function calls to enable
+ // the implementation of sound analyses.
+
/// Assigns st
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/91616
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
> I agree with the usefulness of storing the initial target separately,
> reducing checks and branching based on whether the current target is a `Stmt`
> or `Function`. Since I was touching everywhere `CallStack` was used anyway, I
> went ahead with not pushing the starting `Funct
https://github.com/ymand commented:
I think we can do this without resorting to a pointer union and templating of
the initialization functions, but it will take a little refactoring.
First, notice that `stmt` doesn't make sense for the CallStack. The call stack
serves two purposes -- to avoid
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/91455
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/91316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -209,6 +221,9 @@ class DataflowAnalysisContext {
using DenseMapInfo::isEqual;
};
+ DataflowAnalysisContext(Solver &S, std::unique_ptr OwnedSolver,
ymand wrote:
Please add comments either here or on the fields relating S and OwnedSolver.
https://git
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/91316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/91316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
1 - 100 of 658 matches
Mail list logo