https://github.com/qiongsiwu updated https://github.com/llvm/llvm-project/pull/159620
>From 72ca73919d9285cf116a56dee0f7b437cb0b35cd Mon Sep 17 00:00:00 2001 From: Qiongsi Wu <[email protected]> Date: Thu, 18 Sep 2025 11:04:37 -0700 Subject: [PATCH] Making sure the scanning `CompilerInvocation`'s `-D`s are canonicalized. --- .../DependencyScanning/DependencyScanningWorker.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp index 0855e6dec6158..6fbcefdba2486 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -391,10 +391,13 @@ class DependencyScanningAction { IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS, std::shared_ptr<PCHContainerOperations> PCHContainerOps, DiagnosticConsumer *DiagConsumer) { + // Making sure that we canonicalize the defines before we create the deep + // copy. + if (any(Service.getOptimizeArgs() & ScanningOptimizations::Macros)) + canonicalizeDefines(Invocation->getPreprocessorOpts()); + // Make a deep copy of the original Clang invocation. CompilerInvocation OriginalInvocation(*Invocation); - if (any(Service.getOptimizeArgs() & ScanningOptimizations::Macros)) - canonicalizeDefines(OriginalInvocation.getPreprocessorOpts()); if (Scanned) { // Scanning runs once for the first -cc1 invocation in a chain of driver @@ -750,8 +753,9 @@ bool DependencyScanningWorker::scanDependencies( bool Success = false; if (CommandLine[1] == "-cc1") { - Success = createAndRunToolInvocation(CommandLine, Action, FS, - PCHContainerOps, *Diags, Consumer); + Success = + createAndRunToolInvocation(CommandLine, Action, FS, PCHContainerOps, + *Diags, Consumer); } else { Success = forEachDriverJob( CommandLine, *Diags, FS, [&](const driver::Command &Cmd) { _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
