File tree Expand file tree Collapse file tree 1 file changed +17
-3
lines changed Expand file tree Collapse file tree 1 file changed +17
-3
lines changed Original file line number Diff line number Diff line change @@ -150,19 +150,33 @@ LLVMRustWriteArchive(char *Dst,
150
150
const LLVMRustArchiveMember **NewMembers,
151
151
bool WriteSymbtab,
152
152
Archive::Kind Kind) {
153
- std::vector<NewArchiveIterator > Members;
153
+ std::vector<NewArchiveMember > Members;
154
154
155
155
for (size_t i = 0 ; i < NumMembers; i++) {
156
156
auto Member = NewMembers[i];
157
157
assert (Member->name );
158
158
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));
161
166
#else
162
167
Members.push_back (NewArchiveIterator (Member->filename , Member->name ));
163
168
#endif
164
169
} 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
165
178
Members.push_back (NewArchiveIterator (Member->child , Member->name ));
179
+ #endif
166
180
}
167
181
}
168
182
#if LLVM_VERSION_MINOR >= 8
You can’t perform that action at this time.
0 commit comments