Skip to content

Commit fa244b2

Browse files
graydonjrose-apple
authored andcommitted
Factor out toolchains::Darwin::addLinkerInputArgs.
1 parent 7fb43af commit fa244b2

File tree

2 files changed

+33
-23
lines changed

2 files changed

+33
-23
lines changed

lib/Driver/DarwinToolChains.cpp

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,35 @@ static bool wantsObjCRuntime(const llvm::Triple &triple) {
224224
llvm_unreachable("unknown Darwin OS");
225225
}
226226

227+
void
228+
toolchains::Darwin::addLinkerInputArgs(InvocationInfo &II,
229+
const JobContext &context) const {
230+
ArgStringList &Arguments = II.Arguments;
231+
if (context.shouldUseInputFileList()) {
232+
Arguments.push_back("-filelist");
233+
Arguments.push_back(context.getTemporaryFilePath("inputs", "LinkFileList"));
234+
II.FilelistInfos.push_back({Arguments.back(), file_types::TY_Object,
235+
FilelistInfo::WhichFiles::Input});
236+
} else {
237+
addPrimaryInputsOfType(Arguments, context.Inputs, context.Args,
238+
file_types::TY_Object);
239+
}
240+
241+
addInputsOfType(Arguments, context.InputActions, file_types::TY_Object);
242+
243+
if (context.OI.CompilerMode == OutputInfo::Mode::SingleCompile)
244+
addInputsOfType(Arguments, context.Inputs, context.Args,
245+
file_types::TY_SwiftModuleFile, "-add_ast_path");
246+
else
247+
addPrimaryInputsOfType(Arguments, context.Inputs, context.Args,
248+
file_types::TY_SwiftModuleFile, "-add_ast_path");
249+
250+
// Add all .swiftmodule file inputs as arguments, preceded by the
251+
// "-add_ast_path" linker option.
252+
addInputsOfType(Arguments, context.InputActions,
253+
file_types::TY_SwiftModuleFile, "-add_ast_path");
254+
}
255+
227256
static void findARCLiteLibPath(const toolchains::Darwin &TC,
228257
llvm::SmallVectorImpl<char> &ARCLiteLib) {
229258
auto& D = TC.getDriver();
@@ -509,29 +538,7 @@ toolchains::Darwin::constructInvocation(const DynamicLinkJobAction &job,
509538
InvocationInfo II = {LD};
510539
ArgStringList &Arguments = II.Arguments;
511540

512-
if (context.shouldUseInputFileList()) {
513-
Arguments.push_back("-filelist");
514-
Arguments.push_back(context.getTemporaryFilePath("inputs", "LinkFileList"));
515-
II.FilelistInfos.push_back({Arguments.back(), file_types::TY_Object,
516-
FilelistInfo::WhichFiles::Input});
517-
} else {
518-
addPrimaryInputsOfType(Arguments, context.Inputs, context.Args,
519-
file_types::TY_Object);
520-
}
521-
522-
addInputsOfType(Arguments, context.InputActions, file_types::TY_Object);
523-
524-
if (context.OI.CompilerMode == OutputInfo::Mode::SingleCompile)
525-
addInputsOfType(Arguments, context.Inputs, context.Args,
526-
file_types::TY_SwiftModuleFile, "-add_ast_path");
527-
else
528-
addPrimaryInputsOfType(Arguments, context.Inputs, context.Args,
529-
file_types::TY_SwiftModuleFile, "-add_ast_path");
530-
531-
// Add all .swiftmodule file inputs as arguments, preceded by the
532-
// "-add_ast_path" linker option.
533-
addInputsOfType(Arguments, context.InputActions,
534-
file_types::TY_SwiftModuleFile, "-add_ast_path");
541+
addLinkerInputArgs(II, context);
535542

536543
switch (job.getKind()) {
537544
case LinkKind::None:

lib/Driver/ToolChains.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ namespace toolchains {
2727
class LLVM_LIBRARY_VISIBILITY Darwin : public ToolChain {
2828
protected:
2929

30+
void addLinkerInputArgs(InvocationInfo &II,
31+
const JobContext &context) const;
32+
3033
void addArgsToLinkARCLite(llvm::opt::ArgStringList &Arguments,
3134
const JobContext &context) const;
3235

0 commit comments

Comments
 (0)