hokein accepted this revision. hokein added a comment. This revision is now accepted and ready to land.
LGTM with a few nits. ================ Comment at: clang-tidy/android/CloexecCheck.h:95 + /// Binding name of the FuncDecl of a function call. + static const char *FuncDeclBindingStr; + ---------------- nit: use `static constexpr char FuncDeclBindingStr[] ="..."`, the same below. ================ Comment at: clang-tidy/android/CloexecFopenCheck.cpp:31 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, 'e', 1); } ---------------- nit: add `/*Mode=*/'e', /*ArgsPos=*/1`, the same to other places. ================ Comment at: clang-tidy/android/CloexecOpenCheck.cpp:37 + const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(FuncDeclBindingStr); + int ArgPos = (FD->param_size() > 2) ? 2 : 1; + insertMacroFlag(Result, "O_CLOEXEC", ArgPos); ---------------- Should we check or assert `FD->param_size() > 0`? https://reviews.llvm.org/D36761 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits