[clang] While refactoring projects to eradicate unsafe buffer accesses using … (PR #75650)

via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 15 12:37:24 PST 2023


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff ec92d74a0ef89b9dd46aee6ec8aca6bfd3c66a54 809bf6f4237f634feaeb7e5b0b88be3a2e4de455 -- clang/test/SemaCXX/warn-unsafe-buffer-usage-warning-data-invocation.cpp clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h clang/lib/Analysis/UnsafeBufferUsage.cpp clang/lib/Sema/AnalysisBasedWarnings.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/clang/lib/Analysis/UnsafeBufferUsage.cpp b/clang/lib/Analysis/UnsafeBufferUsage.cpp
index e4eca9939b..4e1c76c300 100644
--- a/clang/lib/Analysis/UnsafeBufferUsage.cpp
+++ b/clang/lib/Analysis/UnsafeBufferUsage.cpp
@@ -729,7 +729,7 @@ class DataInvocationGadget : public WarningGadget {
   constexpr static const char *const OpTag = "data_invocation_expr";
   const ExplicitCastExpr *Op;
 
-  public:
+public:
   DataInvocationGadget(const MatchFinder::MatchResult &Result)
       : WarningGadget(Kind::DataInvocation),
         Op(Result.Nodes.getNodeAs<ExplicitCastExpr>(OpTag)) {}
@@ -737,12 +737,12 @@ class DataInvocationGadget : public WarningGadget {
   static bool classof(const Gadget *G) {
     return G->getKind() == Kind::DataInvocation;
   }
- 
+
   static Matcher matcher() {
-    return stmt(
-        explicitCastExpr(has(cxxMemberCallExpr(callee(
-               cxxMethodDecl(hasName("data")))))).bind(OpTag));
-  }   
+    return stmt(explicitCastExpr(has(cxxMemberCallExpr(
+                                     callee(cxxMethodDecl(hasName("data"))))))
+                    .bind(OpTag));
+  }
   const Stmt *getBaseStmt() const override { return Op; }
 
   DeclUseList getClaimedVarUseSites() const override { return {}; }
@@ -2684,7 +2684,7 @@ void clang::checkUnsafeBufferUsage(const Decl *D,
     // every problematic operation and consider it done. No need to deal
     // with fixable gadgets, no need to group operations by variable.
     for (const auto &G : WarningGadgets) {
-      Handler.handleUnsafeOperation(G->getBaseStmt(), /*IsRelatedToDecl=*/false, 
+      Handler.handleUnsafeOperation(G->getBaseStmt(), /*IsRelatedToDecl=*/false,
                                     D->getASTContext());
     }
 
@@ -2920,8 +2920,8 @@ void clang::checkUnsafeBufferUsage(const Decl *D,
                   Tracker, Handler, VarGrpMgr);
 
   for (const auto &G : UnsafeOps.noVar) {
-    Handler.handleUnsafeOperation(G->getBaseStmt(), /*IsRelatedToDecl=*/false
-                                  , D->getASTContext());
+    Handler.handleUnsafeOperation(G->getBaseStmt(), /*IsRelatedToDecl=*/false,
+                                  D->getASTContext());
   }
 
   for (const auto &[VD, WarningGadgets] : UnsafeOps.byVar) {
@@ -2932,8 +2932,8 @@ void clang::checkUnsafeBufferUsage(const Decl *D,
                                       : FixItList{},
                                       D);
     for (const auto &G : WarningGadgets) {
-      Handler.handleUnsafeOperation(G->getBaseStmt(), /*IsRelatedToDecl=*/true
-                                    , D->getASTContext());
+      Handler.handleUnsafeOperation(G->getBaseStmt(), /*IsRelatedToDecl=*/true,
+                                    D->getASTContext());
     }
   }
 }
diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp
index 4f8e181806..bcf3241514 100644
--- a/clang/lib/Sema/AnalysisBasedWarnings.cpp
+++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp
@@ -2226,7 +2226,7 @@ public:
   UnsafeBufferUsageReporter(Sema &S, bool SuggestSuggestions)
     : S(S), SuggestSuggestions(SuggestSuggestions) {}
 
-  void handleUnsafeOperation(const Stmt *Operation, bool IsRelatedToDecl, 
+  void handleUnsafeOperation(const Stmt *Operation, bool IsRelatedToDecl,
                              ASTContext &Ctx) override {
     SourceLocation Loc;
     SourceRange Range;
@@ -2263,19 +2263,21 @@ public:
         MsgParam = 3;
       } else if (const auto *ECE = dyn_cast<ExplicitCastExpr>(Operation)) {
         QualType destType = ECE->getType();
-        const uint64_t dSize = Ctx.getTypeSize(destType.getTypePtr()->getPointeeType());
-        if(const auto *CE =dyn_cast<CXXMemberCallExpr>(ECE->getSubExpr())) {
+        const uint64_t dSize =
+            Ctx.getTypeSize(destType.getTypePtr()->getPointeeType());
+        if (const auto *CE = dyn_cast<CXXMemberCallExpr>(ECE->getSubExpr())) {
+
+          if (CE->getRecordDecl()->getQualifiedNameAsString().compare(
+                  "std::span"))
+            return;
 
-          if(CE->getRecordDecl()->getQualifiedNameAsString().compare("std::span"))
-           return;
-         
           QualType srcType = CE->getType();
-          const uint64_t sSize = Ctx.getTypeSize(srcType.getTypePtr()->getPointeeType());
-          if(sSize >= dSize)
+          const uint64_t sSize =
+              Ctx.getTypeSize(srcType.getTypePtr()->getPointeeType());
+          if (sSize >= dSize)
             return;
         }
         MsgParam = 4;
- 
       }
       Loc = Operation->getBeginLoc();
       Range = Operation->getSourceRange();

``````````

</details>


https://github.com/llvm/llvm-project/pull/75650


More information about the cfe-commits mailing list