[clang-tools-extra] r311020 - [clang-tidy] Use CloexecCheck as base class.
Chih-hung Hsieh via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 16 14:03:50 PDT 2017
Thanks. The fix is in https://reviews.llvm.org/rL311040.
On Wed, Aug 16, 2017 at 1:39 PM, Evgenii Stepanov <eugeni.stepanov at gmail.com
> wrote:
> Hi,
>
> this change breaks build:
> clang-tools-extra/clang-tidy/android/CloexecSocketCheck.cpp:20:30:
> error: unused variable 'SOCK_CLOEXEC'
> [-Werror,-Wunused-const-variable]
> static constexpr const char *SOCK_CLOEXEC = "SOCK_CLOEXEC";
>
> Please test with LLVM_ENABLE_WERROR=ON before submitting!
>
>
> On Wed, Aug 16, 2017 at 9:59 AM, Chih-Hung Hsieh via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
> > Author: chh
> > Date: Wed Aug 16 09:59:26 2017
> > New Revision: 311020
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=311020&view=rev
> > Log:
> > [clang-tidy] Use CloexecCheck as base class.
> >
> > Summary:
> > Simplify registerMatchers and check functions in CloexecCreatCheck,
> > CloexecSocketCheck, CloexecFopenCheck, and CloexecOpenCheck.
> >
> > Differential Revision: https://reviews.llvm.org/D36761
> >
> >
> > Modified:
> > clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.cpp
> > clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.h
> > clang-tools-extra/trunk/clang-tidy/android/CloexecCreatCheck.cpp
> > clang-tools-extra/trunk/clang-tidy/android/CloexecCreatCheck.h
> > clang-tools-extra/trunk/clang-tidy/android/CloexecFopenCheck.cpp
> > clang-tools-extra/trunk/clang-tidy/android/CloexecFopenCheck.h
> > clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.cpp
> > clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.h
> > clang-tools-extra/trunk/clang-tidy/android/CloexecSocketCheck.cpp
> > clang-tools-extra/trunk/clang-tidy/android/CloexecSocketCheck.h
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.cpp
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecCheck.cpp?rev=311020&
> r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.cpp
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.cpp Wed Aug
> 16 09:59:26 2017
> > @@ -20,10 +20,6 @@ namespace tidy {
> > namespace android {
> >
> > namespace {
> > -
> > -const char *const FuncDeclBindingStr = "funcDecl";
> > -const char *const FuncBindingStr = "func";
> > -
> > // Helper function to form the correct string mode for Type3.
> > // Build the replace text. If it's string constant, add <Mode> directly
> in the
> > // end of the string. Else, add <Mode>.
> > @@ -41,6 +37,10 @@ std::string buildFixMsgForStringFlag(con
> > }
> > } // namespace
> >
> > +constexpr char CloexecCheck::FuncDeclBindingStr[];
> > +
> > +constexpr char CloexecCheck::FuncBindingStr[];
> > +
> > void CloexecCheck::registerMatchersImpl(
> > MatchFinder *Finder, internal::Matcher<FunctionDecl> Function) {
> > // We assume all the checked APIs are C functions.
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.h
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecCheck.h?rev=311020&r1=
> 311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.h (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecCheck.h Wed Aug
> 16 09:59:26 2017
> > @@ -90,6 +90,12 @@ protected:
> > /// Helper function to get the spelling of a particular argument.
> > StringRef getSpellingArg(const ast_matchers::MatchFinder::MatchResult
> &Result,
> > int N) const;
> > +
> > + /// Binding name of the FuncDecl of a function call.
> > + static constexpr char FuncDeclBindingStr[] = "funcDecl";
> > +
> > + /// Binding name of the function call expression.
> > + static constexpr char FuncBindingStr[] = "func";
> > };
> >
> > } // namespace android
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/
> CloexecCreatCheck.cpp
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecCreatCheck.cpp?rev=
> 311020&r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecCreatCheck.cpp
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecCreatCheck.cpp
> Wed Aug 16 09:59:26 2017
> > @@ -10,7 +10,6 @@
> > #include "CloexecCreatCheck.h"
> > #include "clang/AST/ASTContext.h"
> > #include "clang/ASTMatchers/ASTMatchFinder.h"
> > -#include "clang/Lex/Lexer.h"
> >
> > using namespace clang::ast_matchers;
> >
> > @@ -21,37 +20,22 @@ namespace android {
> > void CloexecCreatCheck::registerMatchers(MatchFinder *Finder) {
> > auto CharPointerType = hasType(pointerType(pointee(
> isAnyCharacter())));
> > auto MODETType = hasType(namedDecl(hasName("mode_t")));
> > -
> > - Finder->addMatcher(
> > - callExpr(callee(functionDecl(isExternC(), returns(isInteger()),
> > - hasName("creat"),
> > - hasParameter(0, CharPointerType),
> > - hasParameter(1, MODETType))
> > - .bind("funcDecl")))
> > - .bind("creatFn"),
> > - this);
> > + registerMatchersImpl(Finder,
> > + functionDecl(isExternC(), returns(isInteger()),
> > + hasName("creat"),
> > + hasParameter(0, CharPointerType),
> > + hasParameter(1, MODETType)));
> > }
> >
> > void CloexecCreatCheck::check(const MatchFinder::MatchResult &Result) {
> > - const auto *MatchedCall = Result.Nodes.getNodeAs<
> CallExpr>("creatFn");
> > - const SourceManager &SM = *Result.SourceManager;
> > -
> > const std::string &ReplacementText =
> > - (Twine("open (") +
> > - Lexer::getSourceText(CharSourceRange::getTokenRange(
> > - MatchedCall->getArg(0)->
> getSourceRange()),
> > - SM, Result.Context->getLangOpts()) +
> > + (Twine("open (") + getSpellingArg(Result, 0) +
> > ", O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, " +
> > - Lexer::getSourceText(CharSourceRange::getTokenRange(
> > - MatchedCall->getArg(1)->
> getSourceRange()),
> > - SM, Result.Context->getLangOpts()) +
> > - ")")
> > + getSpellingArg(Result, 1) + ")")
> > .str();
> > -
> > - diag(MatchedCall->getLocStart(),
> > - "prefer open() to creat() because open() allows O_CLOEXEC")
> > - << FixItHint::CreateReplacement(MatchedCall->getSourceRange(),
> > - ReplacementText);
> > + replaceFunc(Result,
> > + "prefer open() to creat() because open() allows
> O_CLOEXEC",
> > + ReplacementText);
> > }
> >
> > } // namespace android
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/CloexecCreatCheck.h
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecCreatCheck.h?rev=
> 311020&r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecCreatCheck.h
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecCreatCheck.h Wed
> Aug 16 09:59:26 2017
> > @@ -10,7 +10,7 @@
> > #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_CREAT_H
> > #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_CREAT_H
> >
> > -#include "../ClangTidy.h"
> > +#include "CloexecCheck.h"
> >
> > namespace clang {
> > namespace tidy {
> > @@ -20,10 +20,10 @@ namespace android {
> > /// Find the usage of creat() and redirect user to use open().
> >
> > /// http://clang.llvm.org/extra/clang-tidy/checks/android-
> cloexec-creat.html
> > -class CloexecCreatCheck : public ClangTidyCheck {
> > +class CloexecCreatCheck : public CloexecCheck {
> > public:
> > CloexecCreatCheck(StringRef Name, ClangTidyContext *Context)
> > - : ClangTidyCheck(Name, Context) {}
> > + : CloexecCheck(Name, Context) {}
> > void registerMatchers(ast_matchers::MatchFinder *Finder) override;
> > void check(const ast_matchers::MatchFinder::MatchResult &Result)
> override;
> > };
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/
> CloexecFopenCheck.cpp
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecFopenCheck.cpp?rev=
> 311020&r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecFopenCheck.cpp
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecFopenCheck.cpp
> Wed Aug 16 09:59:26 2017
> > @@ -18,55 +18,17 @@ namespace clang {
> > namespace tidy {
> > namespace android {
> >
> > -namespace {
> > -static const char MODE = 'e';
> > -
> > -// Build the replace text. If it's string constant, add 'e' directly in
> the end
> > -// of the string. Else, add "e".
> > -std::string BuildReplaceText(const Expr *Arg, const SourceManager &SM,
> > - const LangOptions &LangOpts) {
> > - if (Arg->getLocStart().isMacroID())
> > - return (Lexer::getSourceText(
> > - CharSourceRange::getTokenRange(Arg->getSourceRange()),
> SM,
> > - LangOpts) +
> > - " \"" + Twine(MODE) + "\"")
> > - .str();
> > -
> > - StringRef SR = cast<StringLiteral>(Arg->IgnoreParenCasts())->
> getString();
> > - return ("\"" + SR + Twine(MODE) + "\"").str();
> > -}
> > -} // namespace
> > -
> > void CloexecFopenCheck::registerMatchers(MatchFinder *Finder) {
> > auto CharPointerType = hasType(pointerType(pointee(
> isAnyCharacter())));
> > -
> > - Finder->addMatcher(
> > - callExpr(callee(functionDecl(isExternC(), returns(asString("FILE
> *")),
> > - hasName("fopen"),
> > - hasParameter(0, CharPointerType),
> > - hasParameter(1, CharPointerType))
> > - .bind("funcDecl")))
> > - .bind("fopenFn"),
> > - this);
> > + registerMatchersImpl(Finder,
> > + functionDecl(isExternC(), returns(asString("FILE
> *")),
> > + hasName("fopen"),
> > + hasParameter(0, CharPointerType),
> > + hasParameter(1, CharPointerType)));
> > }
> >
> > void CloexecFopenCheck::check(const MatchFinder::MatchResult &Result) {
> > - const auto *MatchedCall = Result.Nodes.getNodeAs<
> CallExpr>("fopenFn");
> > - const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("funcDecl");
> > - const Expr *ModeArg = MatchedCall->getArg(1);
> > -
> > - // Check if the 'e' may be in the mode string.
> > - const auto *ModeStr = dyn_cast<StringLiteral>(
> ModeArg->IgnoreParenCasts());
> > - if (!ModeStr || (ModeStr->getString().find(MODE) != StringRef::npos))
> > - return;
> > -
> > - const std::string &ReplacementText = BuildReplaceText(
> > - ModeArg, *Result.SourceManager, Result.Context->getLangOpts());
> > -
> > - diag(ModeArg->getLocStart(), "use %0 mode 'e' to set O_CLOEXEC")
> > - << FD
> > - << FixItHint::CreateReplacement(ModeArg->getSourceRange(),
> > - ReplacementText);
> > + insertStringFlag(Result, /*Mode=*/'e', /*ArgPos=*/1);
> > }
> >
> > } // namespace android
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/CloexecFopenCheck.h
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecFopenCheck.h?rev=
> 311020&r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecFopenCheck.h
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecFopenCheck.h Wed
> Aug 16 09:59:26 2017
> > @@ -10,7 +10,7 @@
> > #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_FOPEN_H
> > #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_FOPEN_H
> >
> > -#include "../ClangTidy.h"
> > +#include "CloexecCheck.h"
> >
> > namespace clang {
> > namespace tidy {
> > @@ -23,10 +23,10 @@ namespace android {
> > /// constant propagation.
> > ///
> > /// http://clang.llvm.org/extra/clang-tidy/checks/android-
> cloexec-fopen.html
> > -class CloexecFopenCheck : public ClangTidyCheck {
> > +class CloexecFopenCheck : public CloexecCheck {
> > public:
> > CloexecFopenCheck(StringRef Name, ClangTidyContext *Context)
> > - : ClangTidyCheck(Name, Context) {}
> > + : CloexecCheck(Name, Context) {}
> > void registerMatchers(ast_matchers::MatchFinder *Finder) override;
> > void check(const ast_matchers::MatchFinder::MatchResult &Result)
> override;
> > };
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.
> cpp
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecOpenCheck.cpp?rev=
> 311020&r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.cpp
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.cpp Wed
> Aug 16 09:59:26 2017
> > @@ -8,10 +8,8 @@
> > //===-------------------------------------------------------
> ---------------===//
> >
> > #include "CloexecOpenCheck.h"
> > -#include "../utils/ASTUtils.h"
> > #include "clang/AST/ASTContext.h"
> > #include "clang/ASTMatchers/ASTMatchFinder.h"
> > -#include "clang/Lex/Lexer.h"
> >
> > using namespace clang::ast_matchers;
> >
> > @@ -19,54 +17,26 @@ namespace clang {
> > namespace tidy {
> > namespace android {
> >
> > -static constexpr const char *O_CLOEXEC = "O_CLOEXEC";
> > -
> > void CloexecOpenCheck::registerMatchers(MatchFinder *Finder) {
> > auto CharPointerType = hasType(pointerType(pointee(
> isAnyCharacter())));
> > -
> > - Finder->addMatcher(
> > - callExpr(callee(functionDecl(isExternC(), returns(isInteger()),
> > - hasAnyName("open", "open64"),
> > - hasParameter(0, CharPointerType),
> > - hasParameter(1,
> hasType(isInteger())))
> > - .bind("funcDecl")))
> > - .bind("openFn"),
> > - this);
> > - Finder->addMatcher(
> > - callExpr(callee(functionDecl(isExternC(), returns(isInteger()),
> > - hasName("openat"),
> > - hasParameter(0,
> hasType(isInteger())),
> > - hasParameter(1, CharPointerType),
> > - hasParameter(2,
> hasType(isInteger())))
> > - .bind("funcDecl")))
> > - .bind("openatFn"),
> > - this);
> > + registerMatchersImpl(Finder,
> > + functionDecl(isExternC(), returns(isInteger()),
> > + hasAnyName("open", "open64"),
> > + hasParameter(0, CharPointerType),
> > + hasParameter(1,
> hasType(isInteger()))));
> > + registerMatchersImpl(Finder,
> > + functionDecl(isExternC(), returns(isInteger()),
> > + hasName("openat"),
> > + hasParameter(0,
> hasType(isInteger())),
> > + hasParameter(1, CharPointerType),
> > + hasParameter(2,
> hasType(isInteger()))));
> > }
> >
> > void CloexecOpenCheck::check(const MatchFinder::MatchResult &Result) {
> > - const Expr *FlagArg = nullptr;
> > - if (const auto *OpenFnCall = Result.Nodes.getNodeAs<
> CallExpr>("openFn"))
> > - FlagArg = OpenFnCall->getArg(1);
> > - else if (const auto *OpenFnCall =
> > - Result.Nodes.getNodeAs<CallExpr>("openatFn"))
> > - FlagArg = OpenFnCall->getArg(2);
> > - assert(FlagArg);
> > -
> > - const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("funcDecl");
> > -
> > - // Check the required flag.
> > - SourceManager &SM = *Result.SourceManager;
> > - if (utils::exprHasBitFlagWithSpelling(FlagArg->IgnoreParenCasts(),
> SM,
> > - Result.Context->getLangOpts(), O_CLOEXEC))
> > - return;
> > -
> > - SourceLocation EndLoc =
> > - Lexer::getLocForEndOfToken(SM.getFileLoc(FlagArg->getLocEnd()),
> 0, SM,
> > - Result.Context->getLangOpts());
> > -
> > - diag(EndLoc, "%0 should use %1 where possible")
> > - << FD << O_CLOEXEC
> > - << FixItHint::CreateInsertion(EndLoc, (Twine(" | ") +
> O_CLOEXEC).str());
> > + const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(
> FuncDeclBindingStr);
> > + assert(FD->param_size() > 1);
> > + int ArgPos = (FD->param_size() > 2) ? 2 : 1;
> > + insertMacroFlag(Result, /*MarcoFlag=*/"O_CLOEXEC", ArgPos);
> > }
> >
> > } // namespace android
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.h
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecOpenCheck.h?rev=311020&
> r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.h
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecOpenCheck.h Wed
> Aug 16 09:59:26 2017
> > @@ -10,7 +10,7 @@
> > #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_OPEN_H
> > #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_OPEN_H
> >
> > -#include "../ClangTidy.h"
> > +#include "CloexecCheck.h"
> >
> > namespace clang {
> > namespace tidy {
> > @@ -25,10 +25,10 @@ namespace android {
> > ///
> > /// Only the symbolic 'O_CLOEXEC' macro definition is checked, not the
> concrete
> > /// value.
> > -class CloexecOpenCheck : public ClangTidyCheck {
> > +class CloexecOpenCheck : public CloexecCheck {
> > public:
> > CloexecOpenCheck(StringRef Name, ClangTidyContext *Context)
> > - : ClangTidyCheck(Name, Context) {}
> > + : CloexecCheck(Name, Context) {}
> > void registerMatchers(ast_matchers::MatchFinder *Finder) override;
> > void check(const ast_matchers::MatchFinder::MatchResult &Result)
> override;
> > };
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/
> CloexecSocketCheck.cpp
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecSocketCheck.cpp?rev=
> 311020&r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecSocketCheck.cpp
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecSocketCheck.cpp
> Wed Aug 16 09:59:26 2017
> > @@ -8,7 +8,6 @@
> > //===-------------------------------------------------------
> ---------------===//
> >
> > #include "CloexecSocketCheck.h"
> > -#include "../utils/ASTUtils.h"
> > #include "clang/AST/ASTContext.h"
> > #include "clang/ASTMatchers/ASTMatchFinder.h"
> >
> > @@ -21,35 +20,16 @@ namespace android {
> > static constexpr const char *SOCK_CLOEXEC = "SOCK_CLOEXEC";
> >
> > void CloexecSocketCheck::registerMatchers(MatchFinder *Finder) {
> > - Finder->addMatcher(
> > - callExpr(callee(functionDecl(isExternC(), returns(isInteger()),
> > - hasName("socket"),
> > - hasParameter(0,
> hasType(isInteger())),
> > - hasParameter(1,
> hasType(isInteger())),
> > - hasParameter(2,
> hasType(isInteger())))
> > - .bind("funcDecl")))
> > - .bind("socketFn"),
> > - this);
> > + registerMatchersImpl(Finder,
> > + functionDecl(isExternC(), returns(isInteger()),
> > + hasName("socket"),
> > + hasParameter(0,
> hasType(isInteger())),
> > + hasParameter(1,
> hasType(isInteger())),
> > + hasParameter(2,
> hasType(isInteger()))));
> > }
> >
> > void CloexecSocketCheck::check(const MatchFinder::MatchResult &Result)
> {
> > - const auto *MatchedCall = Result.Nodes.getNodeAs<
> CallExpr>("socketFn");
> > - const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("funcDecl");
> > - const Expr *FlagArg = MatchedCall->getArg(1);
> > - SourceManager &SM = *Result.SourceManager;
> > -
> > - if (utils::exprHasBitFlagWithSpelling(FlagArg->IgnoreParenCasts(),
> SM,
> > - Result.Context->getLangOpts(), SOCK_CLOEXEC))
> > - return;
> > -
> > - SourceLocation EndLoc =
> > - Lexer::getLocForEndOfToken(SM.getFileLoc(FlagArg->getLocEnd()),
> 0, SM,
> > - Result.Context->getLangOpts());
> > -
> > - diag(EndLoc, "%0 should use %1 where possible")
> > - << FD << SOCK_CLOEXEC
> > - << FixItHint::CreateInsertion(EndLoc,
> > - (Twine(" | ") +
> SOCK_CLOEXEC).str());
> > + insertMacroFlag(Result, /*MarcoFlag=*/"SOCK_CLOEXEC", /*ArgPos=*/1);
> > }
> >
> > } // namespace android
> >
> > Modified: clang-tools-extra/trunk/clang-tidy/android/
> CloexecSocketCheck.h
> > URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/
> trunk/clang-tidy/android/CloexecSocketCheck.h?rev=
> 311020&r1=311019&r2=311020&view=diff
> > ============================================================
> ==================
> > --- clang-tools-extra/trunk/clang-tidy/android/CloexecSocketCheck.h
> (original)
> > +++ clang-tools-extra/trunk/clang-tidy/android/CloexecSocketCheck.h Wed
> Aug 16 09:59:26 2017
> > @@ -10,7 +10,7 @@
> > #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_SOCKET_H
> > #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ANDROID_CLOEXEC_SOCKET_H
> >
> > -#include "../ClangTidy.h"
> > +#include "CloexecCheck.h"
> >
> > namespace clang {
> > namespace tidy {
> > @@ -20,10 +20,10 @@ namespace android {
> > ///
> > /// For the user-facing documentation see:
> > /// http://clang.llvm.org/extra/clang-tidy/checks/android-
> cloexec-socket.html
> > -class CloexecSocketCheck : public ClangTidyCheck {
> > +class CloexecSocketCheck : public CloexecCheck {
> > public:
> > CloexecSocketCheck(StringRef Name, ClangTidyContext *Context)
> > - : ClangTidyCheck(Name, Context) {}
> > + : CloexecCheck(Name, Context) {}
> > void registerMatchers(ast_matchers::MatchFinder *Finder) override;
> > void check(const ast_matchers::MatchFinder::MatchResult &Result)
> override;
> > };
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > cfe-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170816/471cb18f/attachment-0001.html>
More information about the cfe-commits
mailing list