Skip to content

Commit 4f5cb6a

Browse files
-l flag accepts space and emits without space to llvm frontend
1 parent ba0536f commit 4f5cb6a

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

include/swift/Option/Options.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,7 @@ def libc : Separate<["-"], "libc">, HelpText<"libc runtime library to use">;
701701

702702
def linker_option_Group : OptionGroup<"<linker-specific options>">;
703703

704-
def l : Joined<["-"], "l">, Group<linker_option_Group>,
704+
def l : JoinedOrSeparate<["-"], "l">, Group<linker_option_Group>,
705705
Flags<[FrontendOption, DoesNotAffectIncrementalBuild]>,
706706
HelpText<"Specifies a library which should be linked against">;
707707
def framework : Separate<["-"], "framework">, Group<linker_option_Group>,

lib/Driver/ToolChains.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,14 @@ static void addLTOArgs(const OutputInfo &OI, ArgStringList &arguments) {
142142
}
143143
}
144144

145+
static void addLinkedLibArgs(const ArgList &Args, ArgStringList &FrontendArgs) {
146+
for(auto Arg:Args.getAllArgValues(options::OPT_l))
147+
{
148+
std::string* lArg = new std::string("-l" + Arg);
149+
FrontendArgs.push_back(lArg->c_str());
150+
}
151+
}
152+
145153
void ToolChain::addCommonFrontendArgs(const OutputInfo &OI,
146154
const CommandOutput &output,
147155
const ArgList &inputArgs,
@@ -842,7 +850,8 @@ ToolChain::constructInvocation(const InterpretJobAction &job,
842850
Arguments.push_back("-module-name");
843851
Arguments.push_back(context.Args.MakeArgString(context.OI.ModuleName));
844852

845-
context.Args.AddAllArgs(Arguments, options::OPT_l, options::OPT_framework);
853+
context.Args.AddAllArgs(Arguments, options::OPT_framework);
854+
addLinkedLibArgs(context.Args, Arguments);
846855

847856
// The immediate arguments must be last.
848857
context.Args.AddLastArg(Arguments, options::OPT__DASH_DASH);
@@ -1190,8 +1199,8 @@ ToolChain::constructInvocation(const REPLJobAction &job,
11901199
addRuntimeLibraryFlags(context.OI, FrontendArgs);
11911200

11921201
context.Args.AddLastArg(FrontendArgs, options::OPT_import_objc_header);
1193-
context.Args.AddAllArgs(FrontendArgs, options::OPT_l, options::OPT_framework,
1194-
options::OPT_L);
1202+
context.Args.AddAllArgs(FrontendArgs, options::OPT_framework, options::OPT_L);
1203+
addLinkedLibArgs(context.Args, FrontendArgs);
11951204

11961205
if (!useLLDB) {
11971206
FrontendArgs.insert(FrontendArgs.begin(), {"-frontend", "-repl"});

0 commit comments

Comments
 (0)