apple / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. This fork is used to manage Apple’s stable releases of Clang as well as support the Swift project.
https://llvm.org
Other
1.09k stars 320 forks source link

[cherry-pick swift/release/6.0][clang][modules] HeaderSearch::MarkFileModuleHeader sets textual headers' HeaderFileInfo non-external when it shouldn't #8905

Closed ian-twilightcoder closed 2 weeks ago

ian-twilightcoder commented 2 weeks ago

HeaderSearch::MarkFileModuleHeader is no longer properly checking for no-changes, and so sets the HeaderFileInfo for every textual header to non-external.

rdar://129866498

ian-twilightcoder commented 2 weeks ago

Explanation: This fixes a regression from https://github.com/apple/llvm-project/pull/8552 where building a module will incorrectly recreate HeaderFileInfos for textual modular headers.. Radar (and possibly SR Issue): rdar://129866498 Scope: This appears to mostly affect situations where a header is textual in one module and regular in another. Risk: None anticipated, this restores the previous behavior where HeaderFileInfo is reused when the module map doesn't change the headers modular status. Testing: Local testing, CI, unit test. Reviewed By: Jan Svboda (jansvboda11)

ian-twilightcoder commented 2 weeks ago

@swift-ci test llvm

ian-twilightcoder commented 2 weeks ago

@swift-ci test

ian-twilightcoder commented 2 weeks ago

There's a few unrelated driver test failures, but otherwise I think everything looks good.