File indexing completed on 2026-05-10 08:36:21
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_BRACESAROUNDSTATEMENTSCHECK_H
0010 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_BRACESAROUNDSTATEMENTSCHECK_H
0011
0012 #include "../ClangTidyCheck.h"
0013
0014 namespace clang::tidy::readability {
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 class BracesAroundStatementsCheck : public ClangTidyCheck {
0042 public:
0043 BracesAroundStatementsCheck(StringRef Name, ClangTidyContext *Context);
0044 void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
0045 void registerMatchers(ast_matchers::MatchFinder *Finder) override;
0046 void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
0047 void onEndOfTranslationUnit() override;
0048
0049 private:
0050 bool checkStmt(const ast_matchers::MatchFinder::MatchResult &Result,
0051 const Stmt *S, SourceLocation StartLoc,
0052 SourceLocation EndLocHint = SourceLocation());
0053 template <typename IfOrWhileStmt>
0054 SourceLocation findRParenLoc(const IfOrWhileStmt *S, const SourceManager &SM,
0055 const LangOptions &LangOpts);
0056 std::optional<TraversalKind> getCheckTraversalKind() const override {
0057 return TK_IgnoreUnlessSpelledInSource;
0058 }
0059
0060 std::set<const Stmt *> ForceBracesStmts;
0061 const unsigned ShortStatementLines;
0062 };
0063
0064 }
0065
0066 #endif