Index: llvm/trunk/include/llvm/Support/CommandLine.h =================================================================== --- llvm/trunk/include/llvm/Support/CommandLine.h +++ llvm/trunk/include/llvm/Support/CommandLine.h @@ -1180,6 +1180,10 @@ return this->getValue(); } + // Command line options should not be copyable + opt(const opt &) LLVM_DELETED_FUNCTION; + opt &operator=(const opt &) LLVM_DELETED_FUNCTION; + // One option... template explicit opt(const M0t &M0) @@ -1374,6 +1378,10 @@ void setNumAdditionalVals(unsigned n) { Option::setNumAdditionalVals(n); } + // Command line options should not be copyable + list(const list &) LLVM_DELETED_FUNCTION; + list &operator=(const list &) LLVM_DELETED_FUNCTION; + // One option... template explicit list(const M0t &M0) @@ -1592,6 +1600,10 @@ return Positions[optnum]; } + // Command line options should not be copyable + bits(const bits &) LLVM_DELETED_FUNCTION; + bits &operator=(const bits &) LLVM_DELETED_FUNCTION; + // One option... template explicit bits(const M0t &M0) @@ -1725,6 +1737,10 @@ AliasFor = &O; } + // Command line options should not be copyable + alias(const alias &) LLVM_DELETED_FUNCTION; + alias &operator=(const alias &) LLVM_DELETED_FUNCTION; + // One option... template explicit alias(const M0t &M0) Index: llvm/trunk/tools/lli/lli.cpp =================================================================== --- llvm/trunk/tools/lli/lli.cpp +++ llvm/trunk/tools/lli/lli.cpp @@ -556,7 +556,7 @@ // If the user specifically requested an argv[0] to pass into the program, // do it now. if (!FakeArgv0.empty()) { - InputFile = FakeArgv0; + InputFile = static_cast(FakeArgv0); } else { // Otherwise, if there is a .bc suffix on the executable strip it off, it // might confuse the program. Index: llvm/trunk/tools/llvm-profdata/llvm-profdata.cpp =================================================================== --- llvm/trunk/tools/llvm-profdata/llvm-profdata.cpp +++ llvm/trunk/tools/llvm-profdata/llvm-profdata.cpp @@ -38,7 +38,8 @@ enum ProfileKinds { instr, sample }; -void mergeInstrProfile(cl::list Inputs, StringRef OutputFilename) { +void mergeInstrProfile(const cl::list &Inputs, + StringRef OutputFilename) { if (OutputFilename.compare("-") == 0) exitWithError("Cannot write indexed profdata format to stdout."); @@ -64,7 +65,8 @@ Writer.write(Output); } -void mergeSampleProfile(cl::list Inputs, StringRef OutputFilename, +void mergeSampleProfile(const cl::list &Inputs, + StringRef OutputFilename, sampleprof::SampleProfileFormat OutputFormat) { using namespace sampleprof; auto WriterOrErr = SampleProfileWriter::create(OutputFilename, OutputFormat); Index: llvm/trunk/tools/llvm-size/llvm-size.cpp =================================================================== --- llvm/trunk/tools/llvm-size/llvm-size.cpp +++ llvm/trunk/tools/llvm-size/llvm-size.cpp @@ -709,7 +709,7 @@ ToolName = argv[0]; if (OutputFormatShort.getNumOccurrences()) - OutputFormat = OutputFormatShort; + OutputFormat = static_cast(OutputFormatShort); if (RadixShort.getNumOccurrences()) Radix = RadixShort;