@@ -24,11 +24,7 @@ struct RustArchiveMember {
24
24
25
25
RustArchiveMember ()
26
26
: Filename(nullptr ), Name(nullptr ),
27
- #if LLVM_VERSION_GE(3, 8)
28
27
Child (nullptr , nullptr , nullptr )
29
- #else
30
- Child (nullptr , nullptr )
31
- #endif
32
28
{
33
29
}
34
30
~RustArchiveMember () {}
@@ -38,13 +34,9 @@ struct RustArchiveIterator {
38
34
bool First;
39
35
Archive::child_iterator Cur;
40
36
Archive::child_iterator End;
41
- #if LLVM_VERSION_GE(3, 9)
42
37
Error Err;
43
38
44
39
RustArchiveIterator () : First(true ), Err(Error::success()) {}
45
- #else
46
- RustArchiveIterator () : First(true ) {}
47
- #endif
48
40
};
49
41
50
42
enum class LLVMRustArchiveKind {
@@ -84,19 +76,11 @@ extern "C" LLVMRustArchiveRef LLVMRustOpenArchive(char *Path) {
84
76
return nullptr ;
85
77
}
86
78
87
- #if LLVM_VERSION_LE(3, 8)
88
- ErrorOr<std::unique_ptr<Archive>> ArchiveOr =
89
- #else
90
79
Expected<std::unique_ptr<Archive>> ArchiveOr =
91
- #endif
92
80
Archive::create (BufOr.get ()->getMemBufferRef ());
93
81
94
82
if (!ArchiveOr) {
95
- #if LLVM_VERSION_LE(3, 8)
96
- LLVMRustSetLastError (ArchiveOr.getError ().message ().c_str ());
97
- #else
98
83
LLVMRustSetLastError (toString (ArchiveOr.takeError ()).c_str ());
99
- #endif
100
84
return nullptr ;
101
85
}
102
86
@@ -114,16 +98,12 @@ extern "C" LLVMRustArchiveIteratorRef
114
98
LLVMRustArchiveIteratorNew (LLVMRustArchiveRef RustArchive) {
115
99
Archive *Archive = RustArchive->getBinary ();
116
100
RustArchiveIterator *RAI = new RustArchiveIterator ();
117
- #if LLVM_VERSION_LE(3, 8)
118
- RAI->Cur = Archive->child_begin ();
119
- #else
120
101
RAI->Cur = Archive->child_begin (RAI->Err );
121
102
if (RAI->Err ) {
122
103
LLVMRustSetLastError (toString (std::move (RAI->Err )).c_str ());
123
104
delete RAI;
124
105
return nullptr ;
125
106
}
126
- #endif
127
107
RAI->End = Archive->child_end ();
128
108
return RAI;
129
109
}
@@ -141,29 +121,18 @@ LLVMRustArchiveIteratorNext(LLVMRustArchiveIteratorRef RAI) {
141
121
// but instead advance it *before* fetching the child in all later calls.
142
122
if (!RAI->First ) {
143
123
++RAI->Cur ;
144
- #if LLVM_VERSION_GE(3, 9)
145
124
if (RAI->Err ) {
146
125
LLVMRustSetLastError (toString (std::move (RAI->Err )).c_str ());
147
126
return nullptr ;
148
127
}
149
- #endif
150
128
} else {
151
129
RAI->First = false ;
152
130
}
153
131
154
132
if (RAI->Cur == RAI->End )
155
133
return nullptr ;
156
134
157
- #if LLVM_VERSION_EQ(3, 8)
158
- const ErrorOr<Archive::Child> *Cur = RAI->Cur .operator ->();
159
- if (!*Cur) {
160
- LLVMRustSetLastError (Cur->getError ().message ().c_str ());
161
- return nullptr ;
162
- }
163
- const Archive::Child &Child = Cur->get ();
164
- #else
165
135
const Archive::Child &Child = *RAI->Cur .operator ->();
166
- #endif
167
136
Archive::Child *Ret = new Archive::Child (Child);
168
137
169
138
return Ret;
@@ -239,18 +208,13 @@ LLVMRustWriteArchive(char *Dst, size_t NumMembers,
239
208
const LLVMRustArchiveMemberRef *NewMembers,
240
209
bool WriteSymbtab, LLVMRustArchiveKind RustKind) {
241
210
242
- #if LLVM_VERSION_LE(3, 8)
243
- std::vector<NewArchiveIterator> Members;
244
- #else
245
211
std::vector<NewArchiveMember> Members;
246
- #endif
247
212
auto Kind = fromRust (RustKind);
248
213
249
214
for (size_t I = 0 ; I < NumMembers; I++) {
250
215
auto Member = NewMembers[I];
251
216
assert (Member->Name );
252
217
if (Member->Filename ) {
253
- #if LLVM_VERSION_GE(3, 9)
254
218
Expected<NewArchiveMember> MOrErr =
255
219
NewArchiveMember::getFile (Member->Filename , true );
256
220
if (!MOrErr) {
@@ -261,30 +225,17 @@ LLVMRustWriteArchive(char *Dst, size_t NumMembers,
261
225
MOrErr->MemberName = sys::path::filename (MOrErr->MemberName );
262
226
#endif
263
227
Members.push_back (std::move (*MOrErr));
264
- #elif LLVM_VERSION_EQ(3, 8)
265
- Members.push_back (NewArchiveIterator (Member->Filename ));
266
- #else
267
- Members.push_back (NewArchiveIterator (Member->Filename , Member->Name ));
268
- #endif
269
228
} else {
270
- #if LLVM_VERSION_LE(3, 8)
271
- Members.push_back (NewArchiveIterator (Member->Child , Member->Name ));
272
- #else
273
229
Expected<NewArchiveMember> MOrErr =
274
230
NewArchiveMember::getOldMember (Member->Child , true );
275
231
if (!MOrErr) {
276
232
LLVMRustSetLastError (toString (MOrErr.takeError ()).c_str ());
277
233
return LLVMRustResult::Failure;
278
234
}
279
235
Members.push_back (std::move (*MOrErr));
280
- #endif
281
236
}
282
237
}
283
- #if LLVM_VERSION_GE(3, 8)
284
238
auto Pair = writeArchive (Dst, Members, WriteSymbtab, Kind, true , false );
285
- #else
286
- auto Pair = writeArchive (Dst, Members, WriteSymbtab, Kind, true );
287
- #endif
288
239
if (!Pair.second )
289
240
return LLVMRustResult::Success;
290
241
LLVMRustSetLastError (Pair.second .message ().c_str ());
0 commit comments