This revision was automatically updated to reflect the committed changes. Closed by commit rG4e637fcb2550: [clang][deps] Make sure ScanInstance outlives collector (authored by jansvoboda11).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133988/new/ https://reviews.llvm.org/D133988 Files: clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp Index: clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp =================================================================== --- clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -174,7 +174,8 @@ Scanned = true; // Create a compiler instance to handle the actual work. - CompilerInstance ScanInstance(std::move(PCHContainerOps)); + ScanInstanceStorage.emplace(std::move(PCHContainerOps)); + CompilerInstance &ScanInstance = *ScanInstanceStorage; ScanInstance.setInvocation(std::move(Invocation)); // Create the compiler's actual diagnostics engine. @@ -304,7 +305,8 @@ bool OptimizeArgs; bool EagerLoadModules; bool DisableFree; - llvm::Optional<StringRef> ModuleName; + Optional<StringRef> ModuleName; + Optional<CompilerInstance> ScanInstanceStorage; std::shared_ptr<ModuleDepCollector> MDC; std::vector<std::string> LastCC1Arguments; bool Scanned = false;
Index: clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp =================================================================== --- clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -174,7 +174,8 @@ Scanned = true; // Create a compiler instance to handle the actual work. - CompilerInstance ScanInstance(std::move(PCHContainerOps)); + ScanInstanceStorage.emplace(std::move(PCHContainerOps)); + CompilerInstance &ScanInstance = *ScanInstanceStorage; ScanInstance.setInvocation(std::move(Invocation)); // Create the compiler's actual diagnostics engine. @@ -304,7 +305,8 @@ bool OptimizeArgs; bool EagerLoadModules; bool DisableFree; - llvm::Optional<StringRef> ModuleName; + Optional<StringRef> ModuleName; + Optional<CompilerInstance> ScanInstanceStorage; std::shared_ptr<ModuleDepCollector> MDC; std::vector<std::string> LastCC1Arguments; bool Scanned = false;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits