diff --git a/tools/llvm-cov/CodeCoverage.cpp b/tools/llvm-cov/CodeCoverage.cpp index 9e2f154c233..eef4732c9c5 100644 --- a/tools/llvm-cov/CodeCoverage.cpp +++ b/tools/llvm-cov/CodeCoverage.cpp @@ -81,7 +81,7 @@ public: int report(int argc, const char **argv, CommandLineParserType commandLineParser); - StringRef ObjectFilename; + std::string ObjectFilename; CoverageViewOptions ViewOpts; std::string PGOFilename; CoverageFiltersMatchAll Filters; @@ -233,6 +233,10 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) { PrettyStackTraceProgram X(argc, argv); llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. + cl::opt ObjectFilename( + cl::Positional, cl::Required, cl::location(this->ObjectFilename), + cl::desc("Covered executable or object file.")); + cl::list InputSourceFiles( cl::Positional, cl::desc(""), cl::ZeroOrMore); @@ -332,23 +336,6 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) { return 0; }; - // Parse the object filename - if (argc > 1) { - StringRef Arg(argv[1]); - if (Arg.equals_lower("-help") || Arg.equals_lower("-version")) { - cl::ParseCommandLineOptions(2, argv, "LLVM code coverage tool\n"); - return 0; - } - ObjectFilename = Arg; - - argv[1] = argv[0]; - --argc; - ++argv; - } else { - errs() << sys::path::filename(argv[0]) << ": No executable file given!\n"; - return 1; - } - switch (Cmd) { case Show: return show(argc, argv, commandLineParser);