Skip to content

Commit b132be4

Browse files
committed
[clang-tidy] Fix unchecked copy of llvm::Expected
Change code to avoid doing a copy of a source llvm::Expected.
1 parent d67dbfb commit b132be4

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -555,17 +555,17 @@ static llvm::IntrusiveRefCntPtr<vfs::OverlayFileSystem> createBaseFS() {
555555
return BaseFS;
556556
}
557557

558-
static llvm::Expected<CommonOptionsParser>
559-
recreateOptionsParserIfNeeded(llvm::ArrayRef<const char *> Args,
560-
llvm::Expected<CommonOptionsParser> OptionsParser,
561-
const ClangTidyOptions &EffectiveOptions) {
558+
static void recreateOptionsParserIfNeeded(
559+
llvm::Expected<CommonOptionsParser> &OptionsParser,
560+
llvm::ArrayRef<const char *> Args,
561+
const ClangTidyOptions &EffectiveOptions) {
562562

563563
auto DoubleDashIt = std::find(Args.begin(), Args.end(), StringRef("--"));
564564

565565
// Exit if we don't have any compiler arguments
566566
if (DoubleDashIt == Args.end() || Args.empty() ||
567567
Args.back() == StringRef("--"))
568-
return OptionsParser;
568+
return;
569569

570570
auto IsDriverMode = [](StringRef Argument) {
571571
return Argument.startswith("--driver-mode=");
@@ -574,7 +574,7 @@ recreateOptionsParserIfNeeded(llvm::ArrayRef<const char *> Args,
574574
// Exit if --driver-mode= is explicitly passed in compiler arguments
575575
if (Args.end() !=
576576
std::find_if(std::next(DoubleDashIt), Args.end(), IsDriverMode))
577-
return OptionsParser;
577+
return;
578578

579579
std::vector<std::string> CommandArguments(std::next(DoubleDashIt),
580580
Args.end());
@@ -613,7 +613,7 @@ recreateOptionsParserIfNeeded(llvm::ArrayRef<const char *> Args,
613613

614614
// Exit if there is no --driver-mode= at this stage
615615
if (DriverModeIt == CommandArguments.end())
616-
return OptionsParser;
616+
return;
617617

618618
std::vector<const char *> NewArgs(Args.begin(), Args.end());
619619

@@ -629,8 +629,8 @@ recreateOptionsParserIfNeeded(llvm::ArrayRef<const char *> Args,
629629
// proper --driver-mode=
630630
int ArgC = NewArgs.size();
631631
const char **ArgV = NewArgs.data();
632-
return CommonOptionsParser::create(ArgC, ArgV, ClangTidyCategory,
633-
cl::ZeroOrMore);
632+
OptionsParser = CommonOptionsParser::create(ArgC, ArgV, ClangTidyCategory,
633+
cl::ZeroOrMore);
634634
}
635635

636636
int clangTidyMain(int argc, const char **argv) {
@@ -672,8 +672,7 @@ int clangTidyMain(int argc, const char **argv) {
672672
SmallString<256> FilePath = makeAbsolute(FileName);
673673
ClangTidyOptions EffectiveOptions = OptionsProvider->getOptions(FilePath);
674674

675-
OptionsParser = recreateOptionsParserIfNeeded(Args, std::move(OptionsParser),
676-
EffectiveOptions);
675+
recreateOptionsParserIfNeeded(OptionsParser, Args, EffectiveOptions);
677676
if (!OptionsParser) {
678677
llvm::WithColor::error() << llvm::toString(OptionsParser.takeError());
679678
return 1;

0 commit comments

Comments
 (0)