diff --git a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp index 950a64f4c27492..1de1b1baccb5a1 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp @@ -195,14 +195,13 @@ DefaultOptionsProvider::getRawOptions(llvm::StringRef FileName) { } ConfigOptionsProvider::ConfigOptionsProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &ConfigOptions, - const ClangTidyOptions &OverrideOptions, + ClangTidyGlobalOptions GlobalOptions, ClangTidyOptions DefaultOptions, + ClangTidyOptions ConfigOptions, ClangTidyOptions OverrideOptions, llvm::IntrusiveRefCntPtr FS) - : FileOptionsBaseProvider(GlobalOptions, DefaultOptions, OverrideOptions, - FS), - ConfigOptions(ConfigOptions) {} + : FileOptionsBaseProvider(std::move(GlobalOptions), + std::move(DefaultOptions), + std::move(OverrideOptions), std::move(FS)), + ConfigOptions(std::move(ConfigOptions)) {} std::vector ConfigOptionsProvider::getRawOptions(llvm::StringRef FileName) { @@ -227,24 +226,25 @@ ConfigOptionsProvider::getRawOptions(llvm::StringRef FileName) { } FileOptionsBaseProvider::FileOptionsBaseProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, + ClangTidyGlobalOptions GlobalOptions, ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, llvm::IntrusiveRefCntPtr VFS) - : DefaultOptionsProvider(GlobalOptions, DefaultOptions), - OverrideOptions(OverrideOptions), FS(std::move(VFS)) { + : DefaultOptionsProvider(std::move(GlobalOptions), + std::move(DefaultOptions)), + OverrideOptions(std::move(OverrideOptions)), FS(std::move(VFS)) { if (!FS) FS = llvm::vfs::getRealFileSystem(); ConfigHandlers.emplace_back(".clang-tidy", parseConfiguration); } FileOptionsBaseProvider::FileOptionsBaseProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, - const FileOptionsBaseProvider::ConfigFileHandlers &ConfigHandlers) - : DefaultOptionsProvider(GlobalOptions, DefaultOptions), - OverrideOptions(OverrideOptions), ConfigHandlers(ConfigHandlers) {} + ClangTidyGlobalOptions GlobalOptions, ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, + FileOptionsBaseProvider::ConfigFileHandlers ConfigHandlers) + : DefaultOptionsProvider(std::move(GlobalOptions), + std::move(DefaultOptions)), + OverrideOptions(std::move(OverrideOptions)), + ConfigHandlers(std::move(ConfigHandlers)) {} void FileOptionsBaseProvider::addRawFileOptions( llvm::StringRef AbsolutePath, std::vector &CurOptions) { @@ -286,20 +286,20 @@ void FileOptionsBaseProvider::addRawFileOptions( } FileOptionsProvider::FileOptionsProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, + ClangTidyGlobalOptions GlobalOptions, ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, llvm::IntrusiveRefCntPtr VFS) - : FileOptionsBaseProvider(GlobalOptions, DefaultOptions, OverrideOptions, - VFS){} + : FileOptionsBaseProvider(std::move(GlobalOptions), + std::move(DefaultOptions), + std::move(OverrideOptions), std::move(VFS)) {} FileOptionsProvider::FileOptionsProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, - const FileOptionsBaseProvider::ConfigFileHandlers &ConfigHandlers) - : FileOptionsBaseProvider(GlobalOptions, DefaultOptions, OverrideOptions, - ConfigHandlers) {} + ClangTidyGlobalOptions GlobalOptions, ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, + FileOptionsBaseProvider::ConfigFileHandlers ConfigHandlers) + : FileOptionsBaseProvider( + std::move(GlobalOptions), std::move(DefaultOptions), + std::move(OverrideOptions), std::move(ConfigHandlers)) {} // FIXME: This method has some common logic with clang::format::getStyle(). // Consider pulling out common bits to a findParentFileWithName function or diff --git a/clang-tools-extra/clang-tidy/ClangTidyOptions.h b/clang-tools-extra/clang-tidy/ClangTidyOptions.h index 11c2e652a4d704..b4a00f68d6cfe2 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyOptions.h +++ b/clang-tools-extra/clang-tidy/ClangTidyOptions.h @@ -173,9 +173,10 @@ class ClangTidyOptionsProvider { /// returns the same options for all files. class DefaultOptionsProvider : public ClangTidyOptionsProvider { public: - DefaultOptionsProvider(const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &Options) - : GlobalOptions(GlobalOptions), DefaultOptions(Options) {} + DefaultOptionsProvider(ClangTidyGlobalOptions GlobalOptions, + ClangTidyOptions Options) + : GlobalOptions(std::move(GlobalOptions)), + DefaultOptions(std::move(Options)) {} const ClangTidyGlobalOptions &getGlobalOptions() override { return GlobalOptions; } @@ -187,7 +188,7 @@ class DefaultOptionsProvider : public ClangTidyOptionsProvider { }; class FileOptionsBaseProvider : public DefaultOptionsProvider { -public: +protected: // A pair of configuration file base name and a function parsing // configuration from text in the corresponding format. typedef std::pair( @@ -213,16 +214,15 @@ class FileOptionsBaseProvider : public DefaultOptionsProvider { /// take precedence over ".clang-tidy" if both reside in the same directory. typedef std::vector ConfigFileHandlers; - FileOptionsBaseProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, - llvm::IntrusiveRefCntPtr FS = nullptr); + FileOptionsBaseProvider(ClangTidyGlobalOptions GlobalOptions, + ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, + llvm::IntrusiveRefCntPtr FS); - FileOptionsBaseProvider(const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, - const ConfigFileHandlers &ConfigHandlers); + FileOptionsBaseProvider(ClangTidyGlobalOptions GlobalOptions, + ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, + ConfigFileHandlers ConfigHandlers); protected: void addRawFileOptions(llvm::StringRef AbsolutePath, @@ -243,10 +243,8 @@ class FileOptionsBaseProvider : public DefaultOptionsProvider { class ConfigOptionsProvider : public FileOptionsBaseProvider { public: ConfigOptionsProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &ConfigOptions, - const ClangTidyOptions &OverrideOptions, + ClangTidyGlobalOptions GlobalOptions, ClangTidyOptions DefaultOptions, + ClangTidyOptions ConfigOptions, ClangTidyOptions OverrideOptions, llvm::IntrusiveRefCntPtr FS = nullptr); std::vector getRawOptions(llvm::StringRef FileName) override; @@ -275,9 +273,8 @@ class FileOptionsProvider : public FileOptionsBaseProvider { /// If any of the \param OverrideOptions fields are set, they will override /// whatever options are read from the configuration file. FileOptionsProvider( - const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, + ClangTidyGlobalOptions GlobalOptions, ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, llvm::IntrusiveRefCntPtr FS = nullptr); /// Initializes the \c FileOptionsProvider instance with a custom set @@ -297,10 +294,10 @@ class FileOptionsProvider : public FileOptionsBaseProvider { /// that can parse configuration from this file type. The configuration files /// in each directory are searched for in the order of appearance in /// \p ConfigHandlers. - FileOptionsProvider(const ClangTidyGlobalOptions &GlobalOptions, - const ClangTidyOptions &DefaultOptions, - const ClangTidyOptions &OverrideOptions, - const ConfigFileHandlers &ConfigHandlers); + FileOptionsProvider(ClangTidyGlobalOptions GlobalOptions, + ClangTidyOptions DefaultOptions, + ClangTidyOptions OverrideOptions, + ConfigFileHandlers ConfigHandlers); std::vector getRawOptions(llvm::StringRef FileName) override; }; diff --git a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp index a4069da79ff18c..beef79e17769ec 100644 --- a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp +++ b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp @@ -318,9 +318,9 @@ static std::unique_ptr createOptionsProvider( parseConfiguration(Configuration); if (ParsedConfig) return std::make_unique( - GlobalOptions, + std::move(GlobalOptions), ClangTidyOptions::getDefaults().merge(DefaultOptions, 0), - *ParsedConfig, OverrideOptions, std::move(FS)); + std::move(*ParsedConfig), std::move(OverrideOptions), std::move(FS)); llvm::errs() << "Error: invalid configuration specified.\n" << ParsedConfig.getError().message() << "\n"; return nullptr; @@ -347,8 +347,9 @@ static std::unique_ptr createOptionsProvider( if (Config.getNumOccurrences() > 0) return LoadConfig(Config); - return std::make_unique(GlobalOptions, DefaultOptions, - OverrideOptions, std::move(FS)); + return std::make_unique( + std::move(GlobalOptions), std::move(DefaultOptions), + std::move(OverrideOptions), std::move(FS)); } llvm::IntrusiveRefCntPtr