Author: dblaikie Date: Fri Jan 13 11:34:15 2017 New Revision: 291919 URL: http://llvm.org/viewvc/llvm-project?rev=291919&view=rev Log: unique_ptrify createDriverOptTable
Modified: cfe/trunk/include/clang/Driver/Driver.h cfe/trunk/include/clang/Driver/Options.h cfe/trunk/lib/Driver/Driver.cpp cfe/trunk/lib/Driver/DriverOptions.cpp cfe/trunk/lib/Frontend/CompilerInvocation.cpp cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp cfe/trunk/lib/Tooling/Tooling.cpp Modified: cfe/trunk/include/clang/Driver/Driver.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Driver.h?rev=291919&r1=291918&r2=291919&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Driver.h (original) +++ cfe/trunk/include/clang/Driver/Driver.h Fri Jan 13 11:34:15 2017 @@ -62,7 +62,7 @@ enum LTOKind { /// Driver - Encapsulate logic for constructing compilation processes /// from a set of gcc-driver-like command line arguments. class Driver { - llvm::opt::OptTable *Opts; + std::unique_ptr<llvm::opt::OptTable> Opts; DiagnosticsEngine &Diags; Modified: cfe/trunk/include/clang/Driver/Options.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.h?rev=291919&r1=291918&r2=291919&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Options.h (original) +++ cfe/trunk/include/clang/Driver/Options.h Fri Jan 13 11:34:15 2017 @@ -10,6 +10,8 @@ #ifndef LLVM_CLANG_DRIVER_OPTIONS_H #define LLVM_CLANG_DRIVER_OPTIONS_H +#include <memory> + namespace llvm { namespace opt { class OptTable; @@ -44,7 +46,7 @@ enum ID { }; } -llvm::opt::OptTable *createDriverOptTable(); +std::unique_ptr<llvm::opt::OptTable> createDriverOptTable(); } } Modified: cfe/trunk/lib/Driver/Driver.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=291919&r1=291918&r2=291919&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Driver.cpp (original) +++ cfe/trunk/lib/Driver/Driver.cpp Fri Jan 13 11:34:15 2017 @@ -86,8 +86,6 @@ Driver::Driver(StringRef ClangExecutable } Driver::~Driver() { - delete Opts; - llvm::DeleteContainerSeconds(ToolChains); } @@ -214,9 +212,9 @@ phases::ID Driver::getFinalPhase(const D return FinalPhase; } -static Arg *MakeInputArg(DerivedArgList &Args, OptTable *Opts, +static Arg *MakeInputArg(DerivedArgList &Args, OptTable &Opts, StringRef Value) { - Arg *A = new Arg(Opts->getOption(options::OPT_INPUT), Value, + Arg *A = new Arg(Opts.getOption(options::OPT_INPUT), Value, Args.getBaseArgs().MakeIndex(Value), Value.data()); Args.AddSynthesizedArg(A); A->claim(); @@ -287,7 +285,7 @@ DerivedArgList *Driver::TranslateInputAr if (A->getOption().matches(options::OPT__DASH_DASH)) { A->claim(); for (StringRef Val : A->getValues()) - DAL->append(MakeInputArg(*DAL, Opts, Val)); + DAL->append(MakeInputArg(*DAL, *Opts, Val)); continue; } @@ -1561,14 +1559,14 @@ void Driver::BuildInputs(const ToolChain } else if (A->getOption().matches(options::OPT__SLASH_Tc)) { StringRef Value = A->getValue(); if (DiagnoseInputExistence(*this, Args, Value, types::TY_C)) { - Arg *InputArg = MakeInputArg(Args, Opts, A->getValue()); + Arg *InputArg = MakeInputArg(Args, *Opts, A->getValue()); Inputs.push_back(std::make_pair(types::TY_C, InputArg)); } A->claim(); } else if (A->getOption().matches(options::OPT__SLASH_Tp)) { StringRef Value = A->getValue(); if (DiagnoseInputExistence(*this, Args, Value, types::TY_CXX)) { - Arg *InputArg = MakeInputArg(Args, Opts, A->getValue()); + Arg *InputArg = MakeInputArg(Args, *Opts, A->getValue()); Inputs.push_back(std::make_pair(types::TY_CXX, InputArg)); } A->claim(); @@ -1594,7 +1592,7 @@ void Driver::BuildInputs(const ToolChain if (CCCIsCPP() && Inputs.empty()) { // If called as standalone preprocessor, stdin is processed // if no other input is present. - Arg *A = MakeInputArg(Args, Opts, "-"); + Arg *A = MakeInputArg(Args, *Opts, "-"); Inputs.push_back(std::make_pair(types::TY_C, A)); } } @@ -2497,7 +2495,7 @@ void Driver::BuildActions(Compilation &C const types::ID HeaderType = lookupHeaderTypeForSourceType(InputType); llvm::SmallVector<phases::ID, phases::MaxNumberOfPhases> PCHPL; types::getCompilationPhases(HeaderType, PCHPL); - Arg *PchInputArg = MakeInputArg(Args, Opts, YcArg->getValue()); + Arg *PchInputArg = MakeInputArg(Args, *Opts, YcArg->getValue()); // Build the pipeline for the pch file. Action *ClangClPch = Modified: cfe/trunk/lib/Driver/DriverOptions.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/DriverOptions.cpp?rev=291919&r1=291918&r2=291919&view=diff ============================================================================== --- cfe/trunk/lib/Driver/DriverOptions.cpp (original) +++ cfe/trunk/lib/Driver/DriverOptions.cpp Fri Jan 13 11:34:15 2017 @@ -39,6 +39,6 @@ public: } -OptTable *clang::driver::createDriverOptTable() { - return new DriverOptTable(); +std::unique_ptr<OptTable> clang::driver::createDriverOptTable() { + return llvm::make_unique<DriverOptTable>(); } Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=291919&r1=291918&r2=291919&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original) +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Fri Jan 13 11:34:15 2017 @@ -2405,7 +2405,7 @@ bool CompilerInvocation::CreateFromArgs( bool Success = true; // Parse the arguments. - std::unique_ptr<OptTable> Opts(createDriverOptTable()); + std::unique_ptr<OptTable> Opts = createDriverOptTable(); const unsigned IncludedFlagsBitmask = options::CC1Option; unsigned MissingArgIndex, MissingArgCount; InputArgList Args = Modified: cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp?rev=291919&r1=291918&r2=291919&view=diff ============================================================================== --- cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp (original) +++ cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp Fri Jan 13 11:34:15 2017 @@ -174,7 +174,7 @@ CreateFrontendAction(CompilerInstance &C bool clang::ExecuteCompilerInvocation(CompilerInstance *Clang) { // Honor -help. if (Clang->getFrontendOpts().ShowHelp) { - std::unique_ptr<OptTable> Opts(driver::createDriverOptTable()); + std::unique_ptr<OptTable> Opts = driver::createDriverOptTable(); Opts->PrintHelp(llvm::outs(), "clang -cc1", "LLVM 'Clang' Compiler: http://clang.llvm.org", /*Include=*/ driver::options::CC1Option, /*Exclude=*/ 0); Modified: cfe/trunk/lib/Tooling/Tooling.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/Tooling.cpp?rev=291919&r1=291918&r2=291919&view=diff ============================================================================== --- cfe/trunk/lib/Tooling/Tooling.cpp (original) +++ cfe/trunk/lib/Tooling/Tooling.cpp Fri Jan 13 11:34:15 2017 @@ -244,7 +244,7 @@ bool ToolInvocation::run() { const char *const BinaryName = Argv[0]; IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions(); unsigned MissingArgIndex, MissingArgCount; - std::unique_ptr<llvm::opt::OptTable> Opts(driver::createDriverOptTable()); + std::unique_ptr<llvm::opt::OptTable> Opts = driver::createDriverOptTable(); llvm::opt::InputArgList ParsedArgs = Opts->ParseArgs( ArrayRef<const char *>(Argv).slice(1), MissingArgIndex, MissingArgCount); ParseDiagnosticArgs(*DiagOpts, ParsedArgs); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits