@@ -48,6 +48,7 @@ class ModuleWrapInvocation {
48
48
llvm::Triple TargetTriple;
49
49
std::vector<std::string> InputFilenames;
50
50
bool UseSharedResourceFolder = true ;
51
+ bool EnableObjCInterop = true ;
51
52
52
53
public:
53
54
bool hasSingleInput () const { return InputFilenames.size () == 1 ; }
@@ -65,6 +66,7 @@ class ModuleWrapInvocation {
65
66
llvm::Triple &getTargetTriple () { return TargetTriple; }
66
67
67
68
bool useSharedResourceFolder () { return UseSharedResourceFolder; }
69
+ bool enableObjCInterop () { return EnableObjCInterop; }
68
70
69
71
int parseArgs (llvm::ArrayRef<const char *> Args, DiagnosticEngine &Diags) {
70
72
using namespace options ;
@@ -124,6 +126,9 @@ class ModuleWrapInvocation {
124
126
UseSharedResourceFolder = false ;
125
127
}
126
128
129
+ EnableObjCInterop = ParsedArgs.hasFlag (OPT_enable_objc_interop,
130
+ OPT_disable_objc_interop, TargetTriple.isOSDarwin ());
131
+
127
132
return 0 ;
128
133
}
129
134
};
@@ -184,6 +189,7 @@ int modulewrap_main(ArrayRef<const char *> Args, const char *Argv0,
184
189
symbolgraphgen::SymbolGraphOptions SymbolGraphOpts;
185
190
CASOptions CASOpts;
186
191
LangOpts.Target = Invocation.getTargetTriple ();
192
+ LangOpts.EnableObjCInterop = Invocation.enableObjCInterop ();
187
193
ASTContext &ASTCtx = *ASTContext::get (
188
194
LangOpts, TypeCheckOpts, SILOpts, SearchPathOpts, ClangImporterOpts,
189
195
SymbolGraphOpts, CASOpts, SrcMgr, Instance.getDiags (),
0 commit comments