1b6f7c934SJulie Hockett //===--- TemporaryObjectsCheck.h - clang-tidy------------------*- C++ -*-===// 2b6f7c934SJulie Hockett // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6b6f7c934SJulie Hockett // 7b6f7c934SJulie Hockett //===----------------------------------------------------------------------===// 8b6f7c934SJulie Hockett 9b6f7c934SJulie Hockett #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ZIRCON_TEMPORARYOBJECTSCHECK_H 10b6f7c934SJulie Hockett #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ZIRCON_TEMPORARYOBJECTSCHECK_H 11b6f7c934SJulie Hockett 12478fc5c8SAlexander Kornienko #include "../ClangTidyCheck.h" 13b6f7c934SJulie Hockett #include "../utils/OptionsUtils.h" 14b6f7c934SJulie Hockett 15*4718da50SCarlos Galvez namespace clang::tidy::zircon { 16b6f7c934SJulie Hockett 17b6f7c934SJulie Hockett /// Construction of specific temporary objects in the Zircon kernel is 18b6f7c934SJulie Hockett /// discouraged. 19b6f7c934SJulie Hockett /// 20b6f7c934SJulie Hockett /// For the user-facing documentation see: 216e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/zircon/temporary-objects.html 22b6f7c934SJulie Hockett class TemporaryObjectsCheck : public ClangTidyCheck { 23b6f7c934SJulie Hockett public: TemporaryObjectsCheck(StringRef Name,ClangTidyContext * Context)24b6f7c934SJulie Hockett TemporaryObjectsCheck(StringRef Name, ClangTidyContext *Context) 25b6f7c934SJulie Hockett : ClangTidyCheck(Name, Context), 26b6f7c934SJulie Hockett Names(utils::options::parseStringList(Options.get("Names", ""))) {} 27b6f7c934SJulie Hockett void storeOptions(ClangTidyOptions::OptionMap &Opts) override; 28b6f7c934SJulie Hockett void registerMatchers(ast_matchers::MatchFinder *Finder) override; 29b6f7c934SJulie Hockett void check(const ast_matchers::MatchFinder::MatchResult &Result) override; 30b6f7c934SJulie Hockett 31b6f7c934SJulie Hockett private: 3212cb5405SNathan James std::vector<StringRef> Names; 33b6f7c934SJulie Hockett }; 34b6f7c934SJulie Hockett 35*4718da50SCarlos Galvez } // namespace clang::tidy::zircon 36b6f7c934SJulie Hockett 37b6f7c934SJulie Hockett #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ZIRCON_TEMPORARYOBJECTSCHECK_H 38