//===--- MultipleNewInOneExpressionCheck.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 "MultipleNewInOneExpressionCheck.h" #include "clang/AST/ASTContext.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Lex/Lexer.h" usingnamespaceclang::ast_matchers; namespace clang::tidy::bugprone { namespace { // Determine if the result of an expression is "stored" in some way. // It is true if the value is stored into a variable or used as initialization // or passed to a function or constructor. // For this use case compound assignments are not counted as a "store" (the 'E' // expression should have pointer type). bool isExprValueStored(const Expr *E, ASTContext &C) { … } } // namespace AST_MATCHER_P(CXXTryStmt, hasHandlerFor, ast_matchers::internal::Matcher<QualType>, InnerMatcher) { … } AST_MATCHER(CXXNewExpr, mayThrow) { … } void MultipleNewInOneExpressionCheck::registerMatchers(MatchFinder *Finder) { … } void MultipleNewInOneExpressionCheck::check( const MatchFinder::MatchResult &Result) { … } } // namespace clang::tidy::bugprone