[LLVM-3.9] Replace NewArchiveIterator with NewArchiveMember

The new NewArchiveMember is simpler and requires less context,
according to upstream.

This was changed in http://reviews.llvm.org/D21721
This commit is contained in:
Jan-Erik Rediger 2016-07-13 15:29:24 +02:00
parent 5b44e10fb7
commit 8433f9bb33

View file

@ -150,19 +150,33 @@ LLVMRustWriteArchive(char *Dst,
const LLVMRustArchiveMember **NewMembers,
bool WriteSymbtab,
Archive::Kind Kind) {
std::vector<NewArchiveIterator> Members;
std::vector<NewArchiveMember> Members;
for (size_t i = 0; i < NumMembers; i++) {
auto Member = NewMembers[i];
assert(Member->name);
if (Member->filename) {
#if LLVM_VERSION_MINOR >= 8
Members.push_back(NewArchiveIterator(Member->filename));
#if LLVM_VERSION_MINOR >= 9
Expected<NewArchiveMember> MOrErr = NewArchiveMember::getFile(Member->filename, true);
if (!MOrErr) {
LLVMRustSetLastError(toString(MOrErr.takeError()).c_str());
return -1;
}
Members.push_back(std::move(*MOrErr));
#else
Members.push_back(NewArchiveIterator(Member->filename, Member->name));
#endif
} else {
#if LLVM_VERSION_MINOR >= 9
Expected<NewArchiveMember> MOrErr = NewArchiveMember::getOldMember(Member->child, true);
if (!MOrErr) {
LLVMRustSetLastError(toString(MOrErr.takeError()).c_str());
return -1;
}
Members.push_back(std::move(*MOrErr));
#else
Members.push_back(NewArchiveIterator(Member->child, Member->name));
#endif
}
}
#if LLVM_VERSION_MINOR >= 8