Skip to content

Commit 48de17d

Browse files
Address review comments for reusable function
1 parent 8946792 commit 48de17d

File tree

5 files changed

+11
-30
lines changed

5 files changed

+11
-30
lines changed

include/swift/Driver/ToolChain.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -249,14 +249,14 @@ class ToolChain {
249249
const Driver &getDriver() const { return D; }
250250
const llvm::Triple &getTriple() const { return Triple; }
251251

252+
/// Special handling for passing down '-l' arguments.
253+
///
254+
/// Not all downstream tools (lldb, ld etc.) consistently accept
255+
/// a space between the '-l' flag and its argument, so we remove
256+
/// the extra space if it was present in \c Args.
252257
static void addLinkedLibArgs(const llvm::opt::ArgList &Args,
253258
llvm::opt::ArgStringList &FrontendArgs);
254259

255-
static void addArgsFromGroupExcept(const llvm::opt::ArgList &Args,
256-
llvm::opt::ArgStringList &FrontendArgs,
257-
llvm::opt::OptSpecifier groupID,
258-
llvm::opt::OptSpecifier exceptID);
259-
260260
/// Construct a Job for the action \p JA, taking the given information into
261261
/// account.
262262
///

lib/Driver/DarwinToolChains.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -796,9 +796,8 @@ toolchains::Darwin::constructInvocation(const DynamicLinkJobAction &job,
796796
Arguments.push_back("-no_objc_category_merging");
797797

798798
// These custom arguments should be right before the object file at the end.
799-
ToolChain::addArgsFromGroupExcept(context.Args, Arguments,
800-
options::OPT_linker_option_Group,
801-
options::OPT_l);
799+
context.Args.AddAllArgsExcept(Arguments, {options::OPT_linker_option_Group},
800+
{options::OPT_l});
802801
ToolChain::addLinkedLibArgs(context.Args, Arguments);
803802
context.Args.AddAllArgValues(Arguments, options::OPT_Xlinker);
804803

lib/Driver/ToolChain.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,6 @@ mergeBatchInputs(ArrayRef<const Job *> jobs,
287287
return false;
288288
}
289289

290-
/// Remove space for -l arg values from \c Args and add to \c FrontendArgs
291290
void ToolChain::addLinkedLibArgs(const llvm::opt::ArgList &Args,
292291
llvm::opt::ArgStringList &FrontendArgs) {
293292
Args.getLastArg(options::OPT_l);
@@ -297,21 +296,6 @@ void ToolChain::addLinkedLibArgs(const llvm::opt::ArgList &Args,
297296
}
298297
}
299298

300-
/// Add all values of a \c groupID from \c Args to \c FrontendArgs .
301-
/// except for \c exceptID .
302-
void ToolChain::addArgsFromGroupExcept(const llvm::opt::ArgList &Args,
303-
llvm::opt::ArgStringList &FrontendArgs,
304-
llvm::opt::OptSpecifier groupID,
305-
llvm::opt::OptSpecifier exceptID) {
306-
for (auto *Arg : Args) {
307-
if (Arg->getOption().matches(groupID) &&
308-
!Arg->getOption().matches(exceptID)) {
309-
Arg->claim();
310-
Arg->render(Args, FrontendArgs);
311-
}
312-
}
313-
}
314-
315299
/// Construct a \c BatchJob by merging the constituent \p jobs' CommandOutput,
316300
/// input \c Job and \c Action members. Call through to \c constructInvocation
317301
/// on \p BatchJob, to build the \c InvocationInfo.

lib/Driver/UnixToolChains.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,9 +358,8 @@ toolchains::GenericUnix::constructInvocation(const DynamicLinkJobAction &job,
358358
}
359359

360360
// These custom arguments should be right before the object file at the end.
361-
ToolChain::addArgsFromGroupExcept(context.Args, Arguments,
362-
options::OPT_linker_option_Group,
363-
options::OPT_l);
361+
context.Args.AddAllArgsExcept(Arguments, {options::OPT_linker_option_Group},
362+
{options::OPT_l});
364363
ToolChain::addLinkedLibArgs(context.Args, Arguments);
365364
context.Args.AddAllArgs(Arguments, options::OPT_Xlinker);
366365
context.Args.AddAllArgValues(Arguments, options::OPT_Xclang_linker);

lib/Driver/WindowsToolChains.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,8 @@ toolchains::Windows::constructInvocation(const DynamicLinkJobAction &job,
179179
}
180180

181181
context.Args.AddAllArgs(Arguments, options::OPT_Xlinker);
182-
ToolChain::addArgsFromGroupExcept(context.Args, Arguments,
183-
options::OPT_linker_option_Group,
184-
options::OPT_l);
182+
context.Args.AddAllArgsExcept(Arguments, {options::OPT_linker_option_Group},
183+
{options::OPT_l});
185184
ToolChain::addLinkedLibArgs(context.Args, Arguments);
186185
context.Args.AddAllArgValues(Arguments, options::OPT_Xclang_linker);
187186

0 commit comments

Comments
 (0)