https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/131374
>From fdc265eeca36dc877f56389d8dba39b517e6 Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Fri, 14 Mar 2025 11:13:46 -0700
Subject: [PATCH 1/2] [NFC][Static Analyzer] Rename `NotNullConstraint` &
`NotN
@@ -1165,7 +1165,7 @@ ProgramStateRef
StdLibraryFunctionsChecker::NotNullConstraint::apply(
return State->assume(L, CannotBeNull);
}
-void StdLibraryFunctionsChecker::NotNullConstraint::describe(
+void StdLibraryFunctionsChecker::NullnessConstraint::describe(
Descripti
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/131374
>From fdc265eeca36dc877f56389d8dba39b517e6 Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Fri, 14 Mar 2025 11:13:46 -0700
Subject: [PATCH 1/3] [NFC][Static Analyzer] Rename `NotNullConstraint` &
`NotN
ziqingluo-90 wrote:
Hi @ilya-biryukov, thank you for continuing to improve this!
I'm currently dealing with downstream conflicts with your previous patch.
Please do not merge this PR this week, otherwise it may slow down our CI.
Thanks!
https://github.com/llvm/llvm-project/pull/132387
_
@@ -436,9 +436,9 @@ class StdLibraryFunctionsChecker
llvm::raw_ostream &Out) const override;
ValueConstraintPtr negate() const override {
- NotNullBufferConstraint Tmp(*this);
+ BufferNullnessConstraint Tmp(*this);
Tmp.Cannot
@@ -436,9 +436,9 @@ class StdLibraryFunctionsChecker
llvm::raw_ostream &Out) const override;
ValueConstraintPtr negate() const override {
- NotNullBufferConstraint Tmp(*this);
+ BufferNullnessConstraint Tmp(*this);
Tmp.Cannot
@@ -1165,7 +1165,7 @@ ProgramStateRef
StdLibraryFunctionsChecker::NotNullConstraint::apply(
return State->assume(L, CannotBeNull);
}
-void StdLibraryFunctionsChecker::NotNullConstraint::describe(
+void StdLibraryFunctionsChecker::NullnessConstraint::describe(
Descripti
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/131374
NotNullConstraint is used to check both null and non-null of a pointer. So the
name, which was created originally for just checking non-nullness, becomes less
suitable.
The same reason applies to `NotNull
@@ -186,106 +212,193 @@ class MatchDescendantVisitor : public
DynamicRecursiveASTVisitor {
return DynamicRecursiveASTVisitor::TraverseStmt(Node);
}
+ void setASTContext(ASTContext &Context) { ActiveASTContext = &Context; }
+
+ void setHandler(const UnsafeBufferUsageHa
https://github.com/ziqingluo-90 approved this pull request.
https://github.com/llvm/llvm-project/pull/125492
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ziqingluo-90 wrote:
Please wait a day or two for @jkorous-apple , @malavikasamak and @dtarditi to
take another look.
https://github.com/llvm/llvm-project/pull/125492
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bi
ziqingluo-90 wrote:
I don't have big concerns here. Thank you again @ivanaivanovska and
@ilya-biryukov for this effort!
It is also going to be easier to debug and will open more opportunities for
optimization this way. (E.g., I'd like to optimize how "printf" functions are
matched, but was ho
@@ -1670,30 +1936,41 @@ class ULCArraySubscriptGadget : public FixableGadget {
};
// Fixable gadget to handle stand alone pointers of the form `UPC(DRE)` in the
-// unspecified pointer context (isInUnspecifiedPointerContext). The gadget
emits
-// fixit of the form `UPC(DRE.da
@@ -68,32 +70,57 @@ static std::string getDREAncestorString(const DeclRefExpr
*DRE,
if (StParents.size() > 1)
return "unavailable due to multiple parents";
-if (StParents.size() == 0)
+if (StParents.empty())
break;
St = StParents.begin()->get();
@@ -1139,26 +1276,30 @@ class ArraySubscriptGadget : public WarningGadget {
const ArraySubscriptExpr *ASE;
public:
- ArraySubscriptGadget(const MatchFinder::MatchResult &Result)
+ ArraySubscriptGadget(const MatchResult &Result)
: WarningGadget(Kind::ArraySubscript),
@@ -1139,26 +1276,30 @@ class ArraySubscriptGadget : public WarningGadget {
const ArraySubscriptExpr *ASE;
public:
- ArraySubscriptGadget(const MatchFinder::MatchResult &Result)
+ ArraySubscriptGadget(const MatchResult &Result)
: WarningGadget(Kind::ArraySubscript),
ziqingluo-90 wrote:
Thanks for reviewing! I will create another PR for my questions.
https://github.com/llvm/llvm-project/pull/130683
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/130683
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/114894
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/129169
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/129169
`MeasureTokenLength` may return an unsigned 0 representing failure in obtaining
length of a token. The analysis now gives up on such cases. Otherwise, there
might be issues caused by unsigned integer "ove
ziqingluo-90 wrote:
CC: @dtarditi
https://github.com/llvm/llvm-project/pull/129169
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/126975
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ziqingluo-90 wrote:
Thank you @tsepez
https://github.com/llvm/llvm-project/pull/126826
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/126975
`-Wunsafe-buffer-usage-in-libc-call` is a subgroup of `-Wunsafe-buffer-usage`
that warns about unsafe libc function calls.
>From 49cfb174e21290918d30928397e6d0d44a521b66 Mon Sep 17 00:00:00 2001
From: Ziqi
https://github.com/ziqingluo-90 approved this pull request.
LGTM, but I think we can keep the test of `sizeof(b)` and add yours at a new
line.
Thanks.
https://github.com/llvm/llvm-project/pull/126826
___
cfe-commits mailing list
cfe-commits@lists.ll
ziqingluo-90 wrote:
> When possible we should always add tests, I think the right place would be:
>
> https://github.com/llvm/llvm-project/blob/main/clang/test/SemaCXX/warn-unsafe-buffer-usage-libc-functions.cpp
>
> CC @ziqingluo-90
>
> Do we need a release note or is this feature clang-20?
T
https://github.com/ziqingluo-90 approved this pull request.
Thank you for the fix! I am curious if you have a counterexample? Because I
thought that `Size` must have an integral type.
https://github.com/llvm/llvm-project/pull/124022
___
cfe-commits m
ziqingluo-90 wrote:
> > I added @ziqingluo-90 @jkorous-apple as reviewers since you've approved
> > recent changes to this warning. Please let us know if you're the right
> > reviewers for this and feel free to loop in more people if necessary.
>
> Thank you @ivanaivanovska, the profiling and
@@ -431,6 +431,122 @@ AST_MATCHER(CXXConstructExpr,
isSafeSpanTwoParamConstruct) {
return false;
}
+class MaxValueEval : public ConstStmtVisitor {
+
+ ASTContext &Context;
+ llvm::APInt Max;
+ unsigned bit_width;
+
+public:
+ typedef ConstStmtVisitor VisitorBase;
+
+ e
@@ -431,6 +431,122 @@ AST_MATCHER(CXXConstructExpr,
isSafeSpanTwoParamConstruct) {
return false;
}
+class MaxValueEval : public ConstStmtVisitor {
+
+ ASTContext &Context;
+ llvm::APInt Max;
+ unsigned bit_width;
+
+public:
+ typedef ConstStmtVisitor VisitorBase;
+
+ e
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/124477
>From 1f67a396d917428ff35ca54ecb2d9124c14342de Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 30 Jan 2025 12:24:45 -0800
Subject: [PATCH 1/2] [StaticAnalyzer] Add reproducers for a bug in
VisitObjCFo
ziqingluo-90 wrote:
@steakhal I have added your test on behalf of you here:
https://github.com/llvm/llvm-project/pull/124477/commits/b932fb61338ed6ec47db351240dc65b9454ba28c
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/124477
>From b932fb61338ed6ec47db351240dc65b9454ba28c Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 30 Jan 2025 12:24:45 -0800
Subject: [PATCH 1/2] [StaticAnalyzer] Add reproducers for a bug in
VisitObjCFo
@@ -124,24 +124,26 @@ void ExprEngine::VisitObjCForCollectionStmt(const
ObjCForCollectionStmt *S,
bool isContainerNull = state->isNull(collectionV).isConstrainedTrue();
- ExplodedNodeSet dstLocation;
- evalLocation(dstLocation, S, elem, Pred, state, elementV, false);
+
@@ -124,24 +124,26 @@ void ExprEngine::VisitObjCForCollectionStmt(const
ObjCForCollectionStmt *S,
bool isContainerNull = state->isNull(collectionV).isConstrainedTrue();
- ExplodedNodeSet dstLocation;
- evalLocation(dstLocation, S, elem, Pred, state, elementV, false);
---
ziqingluo-90 wrote:
> I wanted to push to your branch but for some reason I could not. Here is what
> I would have proposed to unblock this change:
>
> ```diff
> commit ab9670b613be2bdd802342f031bd5e3d20680925
> Author: Balazs Benics
> Date: 2025.01.29 13:02:16
>
> Add a unittest demons
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/124477
>From 635cba186fb9cda4718263caa0d349729279390d Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 30 Jan 2025 12:24:45 -0800
Subject: [PATCH 1/2] [StaticAnalyzer] Add a reproducer for a bug in
VisitObjCF
ziqingluo-90 wrote:
CC: @dtarditi
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 unassigned
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 unassigned
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ziqingluo-90 wrote:
Unfortunately, I cannot forge a minimal example to reproduce this bug due to
the aforementioned fact that `evalLocation` alters the state very rarely.
A minimal example would be just execute an objective-c for loop like this:
```
for (T * element in collection) {
}
```
Then
https://github.com/ziqingluo-90 unassigned
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 unassigned
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 unassigned
https://github.com/llvm/llvm-project/pull/124477
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -124,24 +124,26 @@ void ExprEngine::VisitObjCForCollectionStmt(const
ObjCForCollectionStmt *S,
bool isContainerNull = state->isNull(collectionV).isConstrainedTrue();
- ExplodedNodeSet dstLocation;
- evalLocation(dstLocation, S, elem, Pred, state, elementV, false);
---
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/124477
In `VisitObjCForCollectionStmt`, the function does `evalLocation` for the
current element at the original source state `Pred`. The evaluation may result
in a new state, say `PredNew`. I.e., there is a tran
Author: Ziqing Luo
Date: 2024-12-20T12:42:21-08:00
New Revision: 131acb07d814fabcc969dcaa63f4f352cd529267
URL:
https://github.com/llvm/llvm-project/commit/131acb07d814fabcc969dcaa63f4f352cd529267
DIFF:
https://github.com/llvm/llvm-project/commit/131acb07d814fabcc969dcaa63f4f352cd529267.diff
LO
ziqingluo-90 wrote:
> [#120341
> (comment)](https://github.com/llvm/llvm-project/pull/120341#discussion_r1893822845)
oops, I saw this after I hit the merge button. I will do it in a follow-up
commit.
https://github.com/llvm/llvm-project/pull/120643
___
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/120643
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/120643
>From ada689aff13ea5c582280ce72d3e735ca07caf60 Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 19 Dec 2024 13:44:42 -0800
Subject: [PATCH] [clang][NFC] Fix the static assertion in 4797437
In the previ
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/120643
>From d1b45d14157f9adf4ec8f41840f269b262ee8da6 Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 19 Dec 2024 13:44:42 -0800
Subject: [PATCH] [clang][NFC] Fix the static assertion in 4797437
In the previ
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/120643
>From dd71be83e763128ce432d3a77e17abb439575f4d Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 19 Dec 2024 13:44:42 -0800
Subject: [PATCH] [clang][NFC] Fix the static assertion in 4797437
In the previ
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/120643
>From b057ae37da2426e4ad04297600ce9bdf7d9a31c4 Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 19 Dec 2024 13:44:42 -0800
Subject: [PATCH] [clang][NFC] Fix the static assertion in 4797437
In the previ
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/120643
In the previous commit 4797437463e63ee289a1ff1904cfb7b2fe6cb4c2, I used
`llvm::isInt(StmtClass::LAST##Class)` to test if `StmtClass` is
strictly bounded by the an unsigned integer of 'NumStmtBits'. That i
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/120341
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 approved this pull request.
LGTM, thank you @malavikasamak
https://github.com/llvm/llvm-project/pull/119340
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com
ziqingluo-90 wrote:
> Let's just increase to 9 bits.
>
> Have you checked whether the size of `Stmt` or `Expr` changes when you do
> this?
I changed it to 9 bits and checked that `Stmt` is still 8 bytes and `Expr` is
still 16 bytes.
https://github.com/llvm/llvm-project/pull/120341
__
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/120341
>From 69477100ca48508517a56c9efc3db6840bea82cb Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Wed, 18 Dec 2024 12:14:05 -0800
Subject: [PATCH] [clang][NFC] Increase NumStmtBits by 1 as we are approaching
https://github.com/ziqingluo-90 edited
https://github.com/llvm/llvm-project/pull/120341
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/120341
We have already hit the limit of NumStmtBits downstream after
010d0115fc8e3834fc6f747f0841f3b1e467c4da, which adds 4 new StmtNodes.
>From 6cb8ccb8005342c74018508e7e4d267bd6f44e4c Mon Sep 17 00:00:00 2001
F
https://github.com/ziqingluo-90 approved this pull request.
LGTM! Thanks.
https://github.com/llvm/llvm-project/pull/118249
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -433,37 +433,36 @@ AST_MATCHER(ArraySubscriptExpr, isSafeArraySubscript) {
//already duplicated
// - call both from Sema and from here
- const auto *BaseDRE =
- dyn_cast(Node.getBase()->IgnoreParenImpCasts());
- const auto *SLiteral =
- dyn_cast(Node.ge
https://github.com/ziqingluo-90 approved this pull request.
Neat!
https://github.com/llvm/llvm-project/pull/117021
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/116433
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2270,19 +2270,28 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
MsgParam = 5;
} else if (const auto *ECE = dyn_cast(Operation)) {
QualType destType = ECE->getType();
+bool destTypeComplete = true;
+
if (!isa(de
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/116433
>From 429dd67554681595390828c990050c85dcbb557b Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Thu, 14 Nov 2024 23:08:47 -0800
Subject: [PATCH] [-Wunsafe-buffer-usage] Fix bug in unsafe cast to incomplete
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/116433
Fixed the crash coming from attempting to get size of incomplete types.
Casting `span.data()` to a pointer-to-incomplete-type should be immediately
considered unsafe.
Solving issue #116286.
>From 5aacab
ziqingluo-90 wrote:
@ZequanWu Thanks for the bug-catching! I will look into it!
https://github.com/llvm/llvm-project/pull/91991
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 approved this pull request.
Nice!
nit: please add the pattern `std::span{std::addressor(...), 1}` to the
comment:
```
// Given a two-param std::span construct call, matches iff the call has the
// following forms:
// 1. `std::span{new T[n], n}`, where `n` is a
https://github.com/ziqingluo-90 approved this pull request.
LGTM! Thank you @malavikasamak
https://github.com/llvm/llvm-project/pull/115552
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/114894
>From bfcce44fe554ff4b0e274de68e1c460075b925de Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Mon, 4 Nov 2024 14:56:10 -0800
Subject: [PATCH] [-Wunsafe-buffer-usage] Add alloc_size attribute knowledge to
https://github.com/ziqingluo-90 edited
https://github.com/llvm/llvm-project/pull/114894
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/114894
We can take advantage of the attribute `alloc_size`. For example,
```
void * malloc(size_t size) __attribute__((alloc_size(1)));
std::span{(char *)malloc(x), x}; // this is safe
```
rdar://136634730
>F
@@ -420,6 +420,118 @@ AST_MATCHER(CXXConstructExpr,
isSafeSpanTwoParamConstruct) {
return false;
}
+class MaxValueEval : public RecursiveASTVisitor {
+
+ std::vector val;
+ ASTContext &Context;
+ llvm::APInt Max;
+ unsigned bit_width;
+
+public:
+ typedef RecursiveASTV
@@ -420,6 +420,118 @@ AST_MATCHER(CXXConstructExpr,
isSafeSpanTwoParamConstruct) {
return false;
}
+class MaxValueEval : public RecursiveASTVisitor {
+
+ std::vector val;
+ ASTContext &Context;
+ llvm::APInt Max;
+ unsigned bit_width;
+
+public:
+ typedef RecursiveASTV
https://github.com/ziqingluo-90 approved this pull request.
LGTM! Thank you @danakj for the continuous effort!
https://github.com/llvm/llvm-project/pull/91991
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailm
@@ -3912,3 +3896,56 @@ void clang::checkUnsafeBufferUsage(const Decl *D,
}
}
}
+
+void clang::checkUnsafeBufferUsage(const Decl *D,
+ UnsafeBufferUsageHandler &Handler,
+ bool EmitSuggestions) {
+#ifndef
@@ -420,6 +420,118 @@ AST_MATCHER(CXXConstructExpr,
isSafeSpanTwoParamConstruct) {
return false;
}
+class MaxValueEval : public RecursiveASTVisitor {
+
+ std::vector val;
+ ASTContext &Context;
+ llvm::APInt Max;
+ unsigned bit_width;
+
+public:
+ typedef RecursiveASTV
@@ -420,6 +420,118 @@ AST_MATCHER(CXXConstructExpr,
isSafeSpanTwoParamConstruct) {
return false;
}
+class MaxValueEval : public RecursiveASTVisitor {
+
+ std::vector val;
+ ASTContext &Context;
+ llvm::APInt Max;
+ unsigned bit_width;
+
+public:
+ typedef RecursiveASTV
@@ -420,6 +420,118 @@ AST_MATCHER(CXXConstructExpr,
isSafeSpanTwoParamConstruct) {
return false;
}
+class MaxValueEval : public RecursiveASTVisitor {
+
+ std::vector val;
+ ASTContext &Context;
+ llvm::APInt Max;
+ unsigned bit_width;
+
+public:
+ typedef RecursiveASTV
ziqingluo-90 wrote:
Hi @danakj , we are really looking forward to this change! Will you finish
it soon? Or I can pick it up and land it on behalf of you?
https://github.com/llvm/llvm-project/pull/91991
___
cfe-commits mailing list
cfe-commits@list
ziqingluo-90 wrote:
> This overlaps with #91991 which should probably be landed in its entirety.
> (It looks like it's about attributes but in fact it isn't. It's about finding
> _all_ gadgets in all those new places.) I think that patch was almost ready
> and it was a matter of considering my
ziqingluo-90 wrote:
Worth to mention that there could be "false positives" introduced to those
std::span calls in C'tor initializers because the safe-pattern matching is
syntactic only, which doesn't know there can be "call stacks" involved in
those recursive cases.
https://github.com/llvm/l
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/113226
>From e27fccf11bb750e32453be923f6925abd4cfda31 Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Mon, 21 Oct 2024 14:12:12 -0700
Subject: [PATCH 1/2] [-Wunsafe-buffer-usage] Fix false negatives of missing
2-
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/113226
The analysis now searches for every descendant stmt of constructor initializers
and recurses if the descendant is another constructor call.
(rdar://137999201)
>From e27fccf11bb750e32453be923f6925abd4cfda3
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/109496
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/109496
>From e7f7f82b25eaae86623ac8f47731892b3b629d7d Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Fri, 20 Sep 2024 16:27:09 -0700
Subject: [PATCH 1/4] [-Wunsafe-buffer-usage] Fix a bug and suppress libc
warni
@@ -784,12 +786,12 @@ AST_MATCHER_P(CallExpr, hasUnsafePrintfStringArg,
return false; // possibly some user-defined printf function
ASTContext &Ctx = Finder->getASTContext();
- QualType FristParmTy = FD->getParamDecl(0)->getType();
+ QualType FirstParmTy = FD->getParam
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/109496
>From e7f7f82b25eaae86623ac8f47731892b3b629d7d Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Fri, 20 Sep 2024 16:27:09 -0700
Subject: [PATCH 1/3] [-Wunsafe-buffer-usage] Fix a bug and suppress libc
warni
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/109496
>From e7f7f82b25eaae86623ac8f47731892b3b629d7d Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Fri, 20 Sep 2024 16:27:09 -0700
Subject: [PATCH 1/2] [-Wunsafe-buffer-usage] Fix a bug and suppress libc
warni
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/109496
>From e7f7f82b25eaae86623ac8f47731892b3b629d7d Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Fri, 20 Sep 2024 16:27:09 -0700
Subject: [PATCH] [-Wunsafe-buffer-usage] Fix a bug and suppress libc warnings
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/109496
- Fix a bug in UnsafeBufferUsage.cpp related to casting to PointerType (report
by @hnrklssn
[here](https://github.com/llvm/llvm-project/pull/101583#discussion_r1767705992))
- Suppress -Wunsafe-buffer-usage
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/108308
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 updated
https://github.com/llvm/llvm-project/pull/108308
>From 3c8830a0e69922faf4fad190ba0b2e01a3392e62 Mon Sep 17 00:00:00 2001
From: Ziqing Luo
Date: Tue, 6 Aug 2024 17:54:23 -0700
Subject: [PATCH 1/2] [-Wunsafe-buffer-usage] Reduce false positives with
consta
https://github.com/ziqingluo-90 edited
https://github.com/llvm/llvm-project/pull/108308
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ziqingluo-90 created
https://github.com/llvm/llvm-project/pull/108308
For `snprintf(a, sizeof a, ...)`, the first two arguments form a safe pattern
if `a` is a constant array. In such a case, this commit will suppress the
warning.
(rdar://117182250)
This pattern will effe
https://github.com/ziqingluo-90 closed
https://github.com/llvm/llvm-project/pull/105383
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ziqingluo-90 wrote:
> Btw a question about the new warning: So with
> -Wunsafe-buffer-usage-in-libc-call clang now warns on the following?
>
> ```
> #include
>
> void foo(void) {
> char q[10];
> snprintf(q, 10, "%s", "hello");
> }
> ```
>
> It says
>
> ```
> foo.c:5:3: warning: function
1 - 100 of 236 matches
Mail list logo