[clang] [clang][deps] Disable app extensions during scanning (PR #200041)

via cfe-commits cfe-commits at lists.llvm.org
Wed May 27 14:49:39 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Jan Svoboda (jansvoboda11)

<details>
<summary>Changes</summary>

Application extension contributes to the context hash, but only affects the availability attribute on declarations. Since it cannot affect dependencies, disable it for the scan to reduce the number of scanning PCM variants.

---
Full diff: https://github.com/llvm/llvm-project/pull/200041.diff


1 Files Affected:

- (modified) clang/lib/DependencyScanning/DependencyScannerImpl.cpp (+4) 


``````````diff
diff --git a/clang/lib/DependencyScanning/DependencyScannerImpl.cpp b/clang/lib/DependencyScanning/DependencyScannerImpl.cpp
index 42f87adba84c9..712e84ebedaf9 100644
--- a/clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+++ b/clang/lib/DependencyScanning/DependencyScannerImpl.cpp
@@ -450,6 +450,10 @@ std::shared_ptr<CompilerInvocation> dependencies::createScanCompilerInvocation(
       true;
   ScanInvocation->getHeaderSearchOpts().ModulesForceValidateUserHeaders = false;
 
+  // Application extension only affects the handling of availability attributes,
+  // which cannot change the dependencies.
+  ScanInvocation->getLangOpts().AppExt = false;
+
   // Ensure that the scanner does not create new dependency collectors,
   // and thus won't write out the extra '.d' files to disk.
   ScanInvocation->getDependencyOutputOpts() = {};

``````````

</details>


https://github.com/llvm/llvm-project/pull/200041


More information about the cfe-commits mailing list