should inherit -strict-implicit-module-context when build sub swiftinterface

This commit is contained in:
fushijian
2023-06-27 20:27:39 +08:00
parent 302e0f9532
commit 4b7b598128
4 changed files with 28 additions and 1 deletions

View File

@@ -1669,6 +1669,8 @@ InterfaceSubContextDelegateImpl::InterfaceSubContextDelegateImpl(
// Configure front-end input.
auto &SubFEOpts = genericSubInvocation.getFrontendOptions();
SubFEOpts.RequestedAction = LoaderOpts.requestedAction;
SubFEOpts.StrictImplicitModuleContext =
LoaderOpts.strictImplicitModuleContext;
if (!moduleCachePath.empty()) {
genericSubInvocation.setClangModuleCachePath(moduleCachePath);
}
@@ -1866,6 +1868,10 @@ InterfaceSubContextDelegateImpl::runInSubCompilerInstance(StringRef moduleName,
// invocation.
CompilerInvocation subInvocation = genericSubInvocation;
// save `StrictImplicitModuleContext`
bool StrictImplicitModuleContext =
subInvocation.getFrontendOptions().StrictImplicitModuleContext;
// Save the target triple from the original context.
llvm::Triple originalTargetTriple(subInvocation.getLangOptions().Target);
@@ -1950,6 +1956,10 @@ InterfaceSubContextDelegateImpl::runInSubCompilerInstance(StringRef moduleName,
BuildArgs.push_back(parsedTargetTriple.str());
}
// restore `StrictImplicitModuleContext`
subInvocation.getFrontendOptions().StrictImplicitModuleContext =
StrictImplicitModuleContext;
CompilerInstance subInstance;
SubCompilerInstanceInfo info;
info.Instance = &subInstance;