diff options
Diffstat (limited to 'llvm/lib/TextAPI')
-rw-r--r-- | llvm/lib/TextAPI/InterfaceFile.cpp | 14 | ||||
-rw-r--r-- | llvm/lib/TextAPI/TextStub.cpp | 2 |
2 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/TextAPI/InterfaceFile.cpp b/llvm/lib/TextAPI/InterfaceFile.cpp index d324e30..f1c6add 100644 --- a/llvm/lib/TextAPI/InterfaceFile.cpp +++ b/llvm/lib/TextAPI/InterfaceFile.cpp @@ -48,16 +48,16 @@ void InterfaceFile::addParentUmbrella(const Target &Target_, StringRef Parent) { } void InterfaceFile::addRPath(const Target &InputTarget, StringRef RPath) { - auto Iter = lower_bound(RPaths, InputTarget, - [](const std::pair<Target, std::string> &LHS, - Target RHS) { return LHS.first < RHS; }); + using RPathEntryT = const std::pair<Target, std::string>; + RPathEntryT Entry(InputTarget, RPath); + auto Iter = + lower_bound(RPaths, Entry, + [](RPathEntryT &LHS, RPathEntryT &RHS) { return LHS < RHS; }); - if ((Iter != RPaths.end()) && !(InputTarget < Iter->first)) { - Iter->second = std::string(RPath); + if ((Iter != RPaths.end()) && (*Iter == Entry)) return; - } - RPaths.emplace(Iter, InputTarget, std::string(RPath)); + RPaths.emplace(Iter, Entry); } void InterfaceFile::addTarget(const Target &Target) { diff --git a/llvm/lib/TextAPI/TextStub.cpp b/llvm/lib/TextAPI/TextStub.cpp index e6dc0a4..b9b6061 100644 --- a/llvm/lib/TextAPI/TextStub.cpp +++ b/llvm/lib/TextAPI/TextStub.cpp @@ -1119,6 +1119,8 @@ TextAPIReader::get(MemoryBufferRef InputBuffer) { auto FileOrErr = getInterfaceFileFromJSON(InputBuffer.getBuffer()); if (!FileOrErr) return FileOrErr.takeError(); + + (*FileOrErr)->setPath(Ctx.Path); return std::move(*FileOrErr); } yaml::Input YAMLIn(InputBuffer.getBuffer(), &Ctx, DiagHandler, &Ctx); |