Skip to content

Commit 390eaab

Browse files
committed
Move common code into function
1 parent 4d94eff commit 390eaab

File tree

1 file changed

+9
-24
lines changed

1 file changed

+9
-24
lines changed

lib/Frontend/CompilerInvocation.cpp

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,11 +1201,9 @@ static bool ParseIRGenArgs(IRGenOptions &Opts, ArgList &Args,
12011201
A->getAsString(Args), A->getValue());
12021202
}
12031203
}
1204-
1205-
// Autolink runtime compatibility libraries, if asked to.
1206-
if (!Args.hasArg(options::OPT_disable_autolinking_runtime_compatibility)) {
1204+
1205+
auto getRuntimeCompatVersion = [&] () -> Optional<llvm::VersionTuple> {
12071206
Optional<llvm::VersionTuple> runtimeCompatibilityVersion;
1208-
12091207
if (auto versionArg = Args.getLastArg(
12101208
options::OPT_runtime_compatibility_version)) {
12111209
auto version = StringRef(versionArg->getValue());
@@ -1221,31 +1219,18 @@ static bool ParseIRGenArgs(IRGenOptions &Opts, ArgList &Args,
12211219
runtimeCompatibilityVersion =
12221220
getSwiftRuntimeCompatibilityVersionForTarget(Triple);
12231221
}
1224-
1225-
Opts.AutolinkRuntimeCompatibilityLibraryVersion =
1226-
runtimeCompatibilityVersion;
1222+
return runtimeCompatibilityVersion;
1223+
};
1224+
1225+
// Autolink runtime compatibility libraries, if asked to.
1226+
if (!Args.hasArg(options::OPT_disable_autolinking_runtime_compatibility)) {
1227+
Opts.AutolinkRuntimeCompatibilityLibraryVersion = getRuntimeCompatVersion();
12271228
}
12281229

12291230
if (!Args.hasArg(options::
12301231
OPT_disable_autolinking_runtime_compatibility_dynamic_replacements)) {
1231-
Optional<llvm::VersionTuple> runtimeCompatibilityVersion;
1232-
if (auto versionArg =
1233-
Args.getLastArg(options::OPT_runtime_compatibility_version)) {
1234-
auto version = StringRef(versionArg->getValue());
1235-
if (version.equals("none")) {
1236-
runtimeCompatibilityVersion = None;
1237-
} else if (version.equals("5.0")) {
1238-
runtimeCompatibilityVersion = llvm::VersionTuple(5, 0);
1239-
} else {
1240-
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
1241-
versionArg->getAsString(Args), version);
1242-
}
1243-
} else {
1244-
runtimeCompatibilityVersion =
1245-
getSwiftRuntimeCompatibilityVersionForTarget(Triple);
1246-
}
12471232
Opts.AutolinkRuntimeCompatibilityDynamicReplacementLibraryVersion =
1248-
runtimeCompatibilityVersion;
1233+
getRuntimeCompatVersion();
12491234
}
12501235
return false;
12511236
}

0 commit comments

Comments
 (0)