[clang-tools-extra] [clang-tidy] Added bugprone-exception-rethrow check (PR #86448)

via cfe-commits cfe-commits at lists.llvm.org
Thu May 23 14:01:02 PDT 2024


================
@@ -0,0 +1,68 @@
+//===--- ExceptionRethrowCheck.cpp - clang-tidy ---------------------------===//
+//
+// 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: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "ExceptionRethrowCheck.h"
+#include "clang/ASTMatchers/ASTMatchFinder.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+
+using namespace clang::ast_matchers;
+
+namespace clang::tidy::bugprone {
+
+void ExceptionRethrowCheck::registerMatchers(MatchFinder *Finder) {
+
+  auto RefToExceptionVariable = declRefExpr(to(varDecl(isExceptionVariable())));
+  auto StdMoveCall =
+      callExpr(argumentCountIs(1), callee(functionDecl(hasName("::std::move"))),
----------------
isuckatcs wrote:

This matcher can bind to any user defined `move()` in the `std` namespace, right? How about using the `isExpansionInSystemHeader()` matcher to limit it to the "real" `std::move()` only?

Please create test cases for this, though AFAIK we don't use system headers in our tests to not make them platform dependent, so I'm not sure how to test it at this point.




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


More information about the cfe-commits mailing list