Given:
framework module FW {
umbrella "Headers"
module * { export * }
textual header "ignore.h"
}
Where the framework’s Headers directory contains ignore.h and other headers. Clang will still include ignore.h in the <module-includes> buffer. Non-framework modules do not have this issue.
This causes problems when other parts of the framework include ignore.h, as you can get duplicate definitions.
This may be caused by framework modules having more complicated semantics around the module directory. header decls are relative to the Headers directory, but umbrella "Headers" is relative to the framework directory.
Encountered as part of #158249
testcase.zip