Merge pull request #67009 from Fushj89/inherit-strict-implicit-module-context-in-sub-swiftinterface

should inherit -strict-implicit-module-context when build sub swiftinterface
This commit is contained in:
Artem Chikin
2023-07-05 12:48:23 -07:00
committed by GitHub
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;