Skip to content

Commit d0c78c0

Browse files
committed
fix calls to llvm prefix mapping functions to use space-separated option format
1 parent 1d83fe3 commit d0c78c0

File tree

4 files changed

+12
-10
lines changed

4 files changed

+12
-10
lines changed

include/swift/AST/SearchPathOptions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ class SearchPathOptions {
499499
bool SkipSDKImportPaths = false;
500500

501501
/// Scanner Prefix Mapper.
502-
std::vector<std::string> ScannerPrefixMapper;
502+
std::vector<std::pair<std::string, std::string>> ScannerPrefixMapper;
503503

504504
/// Verify resolved plugin is not changed.
505505
bool ResolvedPluginVerification = false;

lib/AST/ModuleDependencies.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -742,12 +742,8 @@ bool SwiftDependencyScanningService::setupCachingDependencyScanningService(
742742
if (!ScannerPrefixMapper.empty()) {
743743
Mapper = std::make_unique<llvm::PrefixMapper>();
744744
SmallVector<llvm::MappedPrefix, 4> Prefixes;
745-
if (auto E = llvm::MappedPrefix::transformJoined(ScannerPrefixMapper,
746-
Prefixes)) {
747-
Instance.getDiags().diagnose(SourceLoc(), diag::error_prefix_mapping,
748-
toString(std::move(E)));
749-
return true;
750-
}
745+
llvm::MappedPrefix::transformPairs(ScannerPrefixMapper,
746+
Prefixes);
751747
Mapper->addRange(Prefixes);
752748
Mapper->sort();
753749
}

lib/ClangImporter/ClangModuleDependencyScanner.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@ using namespace clang::tooling::dependencies;
4040
static void addScannerPrefixMapperInvocationArguments(
4141
std::vector<std::string> &invocationArgStrs, ASTContext &ctx) {
4242
for (const auto &arg : ctx.SearchPathOpts.ScannerPrefixMapper) {
43-
std::string prefixMapArg = "-fdepscan-prefix-map=" + arg;
44-
invocationArgStrs.push_back(prefixMapArg);
43+
invocationArgStrs.push_back("-fdepscan-prefix-map");
44+
invocationArgStrs.push_back(arg.first);
45+
invocationArgStrs.push_back(arg.second);
4546
}
4647
}
4748

lib/Frontend/CompilerInvocation.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "llvm/Support/FileSystem.h"
3636
#include "llvm/Support/LineIterator.h"
3737
#include "llvm/Support/Path.h"
38+
#include "llvm/Support/PrefixMapper.h"
3839
#include "llvm/Support/Process.h"
3940
#include "llvm/Support/VersionTuple.h"
4041
#include "llvm/Support/WithColor.h"
@@ -2455,7 +2456,11 @@ static bool ParseSearchPathArgs(SearchPathOptions &Opts, ArgList &Args,
24552456
Opts.DeserializedPathRecoverer.addMapping(SplitMap.first, SplitMap.second);
24562457
}
24572458
for (StringRef Opt : Args.getAllArgValues(OPT_scanner_prefix_map)) {
2458-
Opts.ScannerPrefixMapper.push_back(Opt.str());
2459+
if (auto Mapping = llvm::MappedPrefix::getFromJoined(Opt)) {
2460+
Opts.ScannerPrefixMapper.push_back({Mapping->Old, Mapping->New});
2461+
} else {
2462+
Diags.diagnose(SourceLoc(), diag::error_prefix_mapping, Opt);
2463+
}
24592464
}
24602465

24612466
Opts.ResolvedPluginVerification |=

0 commit comments

Comments
 (0)