From: George Karpenkov Date: Thu, 2 Aug 2018 18:17:01 +0000 (+0000) Subject: [analyzer] Forward arguments in registerChecker to avoid accidental copies X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad8ae21546f282980ee0c9c4c64e84c3c164a395;p=clang [analyzer] Forward arguments in registerChecker to avoid accidental copies Differential Revision: https://reviews.llvm.org/D50108 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338753 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/StaticAnalyzer/Core/CheckerManager.h b/include/clang/StaticAnalyzer/Core/CheckerManager.h index 7c353326be..ea2952b3b1 100644 --- a/include/clang/StaticAnalyzer/Core/CheckerManager.h +++ b/include/clang/StaticAnalyzer/Core/CheckerManager.h @@ -149,13 +149,13 @@ public: /// /// \returns a pointer to the checker object. template - CHECKER *registerChecker(AT... Args) { + CHECKER *registerChecker(AT &&... Args) { CheckerTag tag = getTag(); CheckerRef &ref = CheckerTags[tag]; if (ref) return static_cast(ref); // already registered. - CHECKER *checker = new CHECKER(Args...); + CHECKER *checker = new CHECKER(std::forward(Args)...); checker->Name = CurrentCheckName; CheckerDtors.push_back(CheckerDtor(checker, destruct)); CHECKER::_register(checker, *this);