Skip to content

🍒[clang][modules] Invalidate module cache when SDKSettings.json changes #10679

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: swift/release/6.2
Choose a base branch
from

Conversation

jansvoboda11
Copy link

This PR adds the %sdk/SDKSettings.json file to the PCM input file table, so that the PCM gets invalidated when the file changes. This is necessary for availability checks to work correctly and for the include-tree to be rebuilt so that its file list agrees with other include-trees (coming from the module cache or the primary TU).

rdar://149868539

llvm#139751)

This PR adds the `%sdk/SDKSettings.json` file to the PCM input file
table, so that the PCM gets invalidated when the file changes. This is
necessary for availability checks to work correctly.
The input file section in module files only stored files loaded into the `SourceManager`. When rebuilding the module cache, include-trees also include other files, like the SDKSettings.json file. If we don't invalidate the module cache when that file changes, the corresponding include-trees won't agree with the primary TU include-tree on the file contents. This was fixed in llvm#139751 and this PR adds an include tree test.

I intentionally suppress reporting of this new file in tests, so that I don't have go updating ~all of them. This file is getting reported by the scanning C API, so that the build system is given the ability to eventually act on this file being out-of-date.

rdar://149868539
This fixes the Index/Store/handle-prebuilt-module.m test that started failing after llvm#139751.
@jansvoboda11 jansvoboda11 requested a review from akyrtzi May 14, 2025 15:57
@jansvoboda11 jansvoboda11 requested a review from a team as a code owner May 14, 2025 15:57
@jansvoboda11
Copy link
Author

@swift-ci please test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant