[clang] [analyzer][NFC] Take small objects by value (PR #76688)

2024-01-01 Thread Balazs Benics via cfe-commits

https://github.com/steakhal closed 
https://github.com/llvm/llvm-project/pull/76688
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [analyzer][NFC] Take small objects by value (PR #76688)

2024-01-01 Thread Balazs Benics via cfe-commits

steakhal wrote:

Pushed as 7619050cd7c3715f34c1d13ea048c092299037bb and 
8ee3dfd74653e30f48dd9f49ba24f43547e6a549 respectively.

https://github.com/llvm/llvm-project/pull/76688
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [analyzer][NFC] Take small objects by value (PR #76688)

2024-01-01 Thread Gábor Horváth via cfe-commits

https://github.com/Xazax-hun approved this pull request.

LGTM! Thanks!

https://github.com/llvm/llvm-project/pull/76688
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [analyzer][NFC] Take small objects by value (PR #76688)

2024-01-01 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-clang-static-analyzer-1

Author: Balazs Benics (steakhal)


Changes



---

Patch is 28.26 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/76688.diff


14 Files Affected:

- (modified) clang/include/clang/StaticAnalyzer/Core/Checker.h (+5-9) 
- (modified) clang/include/clang/StaticAnalyzer/Core/CheckerManager.h (+4-7) 
- (modified) clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp (+4-5) 
- (modified) clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp 
(+3-2) 
- (modified) clang/lib/StaticAnalyzer/Checkers/Iterator.cpp (+6-8) 
- (modified) clang/lib/StaticAnalyzer/Checkers/Iterator.h (+6-9) 
- (modified) clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp (+23-26) 
- (modified) clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp (+4-4) 
- (modified) clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp 
(+12-19) 
- (modified) clang/lib/StaticAnalyzer/Checkers/TaggedUnionModeling.h (+1-1) 
- (modified) 
clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h 
(+1-1) 
- (modified) 
clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
 (+1-1) 
- (modified) clang/lib/StaticAnalyzer/Core/Environment.cpp (+1-1) 
- (modified) clang/lib/StaticAnalyzer/Core/RegionStore.cpp (+3-3) 


``diff
diff --git a/clang/include/clang/StaticAnalyzer/Core/Checker.h 
b/clang/include/clang/StaticAnalyzer/Core/Checker.h
index 8a46282a595eae..2ec54a837c42c9 100644
--- a/clang/include/clang/StaticAnalyzer/Core/Checker.h
+++ b/clang/include/clang/StaticAnalyzer/Core/Checker.h
@@ -193,9 +193,8 @@ class PostCall {
 
 class Location {
   template 
-  static void _checkLocation(void *checker,
- const SVal , bool isLoad, const Stmt *S,
- CheckerContext ) {
+  static void _checkLocation(void *checker, SVal location, bool isLoad,
+ const Stmt *S, CheckerContext ) {
 ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C);
   }
 
@@ -209,8 +208,7 @@ class Location {
 
 class Bind {
   template 
-  static void _checkBind(void *checker,
- const SVal , const SVal , const Stmt *S,
+  static void _checkBind(void *checker, SVal location, SVal val, const Stmt *S,
  CheckerContext ) {
 ((const CHECKER *)checker)->checkBind(location, val, S, C);
   }
@@ -456,10 +454,8 @@ namespace eval {
 
 class Assume {
   template 
-  static ProgramStateRef _evalAssume(void *checker,
- ProgramStateRef state,
- const SVal ,
- bool assumption) {
+  static ProgramStateRef _evalAssume(void *checker, ProgramStateRef state,
+ SVal cond, bool assumption) {
 return ((const CHECKER *)checker)->evalAssume(state, cond, assumption);
   }
 
diff --git a/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h 
b/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
index 39583c443eda54..a45ba1bc573e1e 100644
--- a/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
+++ b/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
@@ -488,13 +488,11 @@ class CheckerManager {
   using CheckCallFunc =
   CheckerFn;
 
-  using CheckLocationFunc =
-  CheckerFn;
+  using CheckLocationFunc = CheckerFn;
 
   using CheckBindFunc =
-  CheckerFn;
+  CheckerFn;
 
   using CheckEndAnalysisFunc =
   CheckerFn;
@@ -530,8 +528,7 @@ class CheckerManager {
  RegionAndSymbolInvalidationTraits *ITraits)>;
 
   using EvalAssumeFunc =
-  CheckerFn;
+  CheckerFn;
 
   using EvalCallFunc = CheckerFn;
 
diff --git a/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp 
b/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
index ea74256935ca87..f2e1f69c32cfdc 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
@@ -125,9 +125,8 @@ class CallAndMessageChecker
 if (!BT)
   BT.reset(new BugType(OriginalName, desc));
   }
-  bool uninitRefOrPointer(CheckerContext , const SVal ,
-  SourceRange ArgRange, const Expr *ArgEx,
-  std::unique_ptr ,
+  bool uninitRefOrPointer(CheckerContext , SVal V, SourceRange ArgRange,
+  const Expr *ArgEx, std::unique_ptr ,
   const ParmVarDecl *ParamDecl, const char *BD,
   int ArgumentNumber) const;
 };
@@ -185,7 +184,7 @@ static void describeUninitializedArgumentInCall(const 
CallEvent ,
 }
 
 bool CallAndMessageChecker::uninitRefOrPointer(
-CheckerContext , const SVal , SourceRange ArgRange, const Expr *ArgEx,
+CheckerContext , SVal V, SourceRange ArgRange, const Expr *ArgEx,
 

[clang] [analyzer][NFC] Take small objects by value (PR #76688)

2024-01-01 Thread Balazs Benics via cfe-commits

https://github.com/steakhal created 
https://github.com/llvm/llvm-project/pull/76688

None

>From 70c03932cad401f477674881050a8f0c4b573cdb Mon Sep 17 00:00:00 2001
From: Balazs Benics 
Date: Mon, 1 Jan 2024 18:59:46 +0100
Subject: [PATCH 1/2] [analyzer][NFC] Take StringRef by value

---
 .../Checkers/IteratorRangeChecker.cpp |  4 ++--
 .../Checkers/MismatchedIteratorChecker.cpp| 20 ---
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp 
b/clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
index f966ea63da2181..f9263f439b1e3d 100644
--- a/clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
@@ -43,7 +43,7 @@ class IteratorRangeChecker
   void verifyAdvance(CheckerContext , SVal LHS, SVal RHS) const;
   void verifyPrev(CheckerContext , SVal LHS, SVal RHS) const;
   void verifyNext(CheckerContext , SVal LHS, SVal RHS) const;
-  void reportBug(const StringRef , SVal Val, CheckerContext ,
+  void reportBug(StringRef Message, SVal Val, CheckerContext ,
  ExplodedNode *ErrNode) const;
 
 public:
@@ -269,7 +269,7 @@ void IteratorRangeChecker::verifyNext(CheckerContext , 
SVal LHS,
   verifyRandomIncrOrDecr(C, OO_Plus, LHS, RHS);
 }
 
-void IteratorRangeChecker::reportBug(const StringRef , SVal Val,
+void IteratorRangeChecker::reportBug(StringRef Message, SVal Val,
  CheckerContext ,
  ExplodedNode *ErrNode) const {
   auto R = std::make_unique(OutOfRangeBugType, Message,
diff --git a/clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp 
b/clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
index 38f80ba5e1ff39..8116105a50eb08 100644
--- a/clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
@@ -38,12 +38,10 @@ class MismatchedIteratorChecker
const MemRegion *Cont) const;
   void verifyMatch(CheckerContext , const SVal ,
const SVal ) const;
-  void reportBug(const StringRef , const SVal ,
- const SVal , CheckerContext ,
- ExplodedNode *ErrNode) const;
-  void reportBug(const StringRef , const SVal ,
- const MemRegion *Reg, CheckerContext ,
- ExplodedNode *ErrNode) const;
+  void reportBug(StringRef Message, const SVal , const SVal ,
+ CheckerContext , ExplodedNode *ErrNode) const;
+  void reportBug(StringRef Message, const SVal , const MemRegion *Reg,
+ CheckerContext , ExplodedNode *ErrNode) const;
 
 public:
   void checkPreCall(const CallEvent , CheckerContext ) const;
@@ -271,10 +269,8 @@ void MismatchedIteratorChecker::verifyMatch(CheckerContext 
,
   }
 }
 
-void MismatchedIteratorChecker::reportBug(const StringRef ,
-  const SVal ,
-  const SVal ,
-  CheckerContext ,
+void MismatchedIteratorChecker::reportBug(StringRef Message, const SVal ,
+  const SVal , CheckerContext ,
   ExplodedNode *ErrNode) const {
   auto R = std::make_unique(MismatchedBugType, Message,
 ErrNode);
@@ -283,8 +279,8 @@ void MismatchedIteratorChecker::reportBug(const StringRef 
,
   C.emitReport(std::move(R));
 }
 
-void MismatchedIteratorChecker::reportBug(const StringRef ,
-  const SVal , const MemRegion 
*Reg,
+void MismatchedIteratorChecker::reportBug(StringRef Message, const SVal ,
+  const MemRegion *Reg,
   CheckerContext ,
   ExplodedNode *ErrNode) const {
   auto R = std::make_unique(MismatchedBugType, Message,

>From c0a3df172d1b1ba1d6330e336e7c38ba32370204 Mon Sep 17 00:00:00 2001
From: Balazs Benics 
Date: Mon, 1 Jan 2024 19:00:13 +0100
Subject: [PATCH 2/2] [analyzer][NFC] Take SVal and NonLoc by value

---
 .../clang/StaticAnalyzer/Core/Checker.h   | 14 ++
 .../StaticAnalyzer/Core/CheckerManager.h  | 11 ++---
 .../Checkers/CallAndMessageChecker.cpp|  9 ++--
 .../Checkers/InvalidatedIteratorChecker.cpp   |  5 +-
 .../lib/StaticAnalyzer/Checkers/Iterator.cpp  | 14 +++---
 clang/lib/StaticAnalyzer/Checkers/Iterator.h  | 15 +++---
 .../Checkers/IteratorModeling.cpp | 49 +--
 .../Checkers/IteratorRangeChecker.cpp |  4 +-
 .../Checkers/MismatchedIteratorChecker.cpp| 25 +-
 .../Checkers/TaggedUnionModeling.h|  2 +-
 .../UninitializedObject/UninitializedObject.h |  2 +-
 .../UninitializedObjectChecker.cpp|  2 +-