diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1774,14 +1774,13 @@ StringRef SaveStats = A->getValue(); if (SaveStats == "obj" && Output.isFilename()) { StatsFile.assign(Output.getFilename()); - llvm::sys::path::remove_filename(StatsFile); - } else if (SaveStats != "cwd") { + } else if (SaveStats == "cwd") { + StatsFile.assign(Input.getBaseInput()); + } else { D.Diag(diag::err_drv_invalid_value) << A->getAsString(Args) << SaveStats; return {}; } - StringRef BaseName = llvm::sys::path::filename(Input.getBaseInput()); - llvm::sys::path::append(StatsFile, BaseName); llvm::sys::path::replace_extension(StatsFile, "stats"); } else { assert(D.CCPrintInternalStats);