Skip to content

Commit 8433f9b

Browse files
committed
[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
1 parent 5b44e10 commit 8433f9b

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/rustllvm/ArchiveWrapper.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,19 +150,33 @@ LLVMRustWriteArchive(char *Dst,
150150
const LLVMRustArchiveMember **NewMembers,
151151
bool WriteSymbtab,
152152
Archive::Kind Kind) {
153-
std::vector<NewArchiveIterator> Members;
153+
std::vector<NewArchiveMember> Members;
154154

155155
for (size_t i = 0; i < NumMembers; i++) {
156156
auto Member = NewMembers[i];
157157
assert(Member->name);
158158
if (Member->filename) {
159-
#if LLVM_VERSION_MINOR >= 8
160-
Members.push_back(NewArchiveIterator(Member->filename));
159+
#if LLVM_VERSION_MINOR >= 9
160+
Expected<NewArchiveMember> MOrErr = NewArchiveMember::getFile(Member->filename, true);
161+
if (!MOrErr) {
162+
LLVMRustSetLastError(toString(MOrErr.takeError()).c_str());
163+
return -1;
164+
}
165+
Members.push_back(std::move(*MOrErr));
161166
#else
162167
Members.push_back(NewArchiveIterator(Member->filename, Member->name));
163168
#endif
164169
} else {
170+
#if LLVM_VERSION_MINOR >= 9
171+
Expected<NewArchiveMember> MOrErr = NewArchiveMember::getOldMember(Member->child, true);
172+
if (!MOrErr) {
173+
LLVMRustSetLastError(toString(MOrErr.takeError()).c_str());
174+
return -1;
175+
}
176+
Members.push_back(std::move(*MOrErr));
177+
#else
165178
Members.push_back(NewArchiveIterator(Member->child, Member->name));
179+
#endif
166180
}
167181
}
168182
#if LLVM_VERSION_MINOR >= 8

0 commit comments

Comments
 (0)