diff --git a/clang/tools/clang-scan-deps/ClangScanDeps.cpp b/clang/tools/clang-scan-deps/ClangScanDeps.cpp --- a/clang/tools/clang-scan-deps/ClangScanDeps.cpp +++ b/clang/tools/clang-scan-deps/ClangScanDeps.cpp @@ -252,14 +252,17 @@ public: void mergeDeps(StringRef Input, TranslationUnitDeps TUDeps, size_t InputIndex) { + mergeDeps(std::move(TUDeps.ModuleGraph), InputIndex); + InputDeps ID; ID.FileName = std::string(Input); ID.ContextHash = std::move(TUDeps.ID.ContextHash); ID.FileDeps = std::move(TUDeps.FileDeps); ID.ModuleDeps = std::move(TUDeps.ClangModuleDeps); - mergeDeps(std::move(TUDeps.ModuleGraph), InputIndex); ID.DriverCommandLine = std::move(TUDeps.DriverCommandLine); ID.Commands = std::move(TUDeps.Commands); + + std::unique_lock ul(Lock); Inputs.push_back(std::move(ID)); }