14
14
#include " llvm/IR/DiagnosticInfo.h"
15
15
#include " llvm/IR/DiagnosticPrinter.h"
16
16
17
- #if LLVM_VERSION_MINOR >= 5
18
17
#include " llvm/IR/CallSite.h"
19
- #else
20
- #include " llvm/Support/CallSite.h"
21
- #endif
22
18
23
19
// ===----------------------------------------------------------------------===
24
20
//
@@ -33,7 +29,6 @@ using namespace llvm::object;
33
29
34
30
static char *LastError;
35
31
36
- #if LLVM_VERSION_MINOR >= 5
37
32
extern " C" LLVMMemoryBufferRef
38
33
LLVMRustCreateMemoryBufferWithContentsOfFile (const char *Path) {
39
34
ErrorOr<std::unique_ptr<MemoryBuffer>> buf_or = MemoryBuffer::getFile (Path,
@@ -45,18 +40,6 @@ LLVMRustCreateMemoryBufferWithContentsOfFile(const char *Path) {
45
40
}
46
41
return wrap (buf_or.get ().release ());
47
42
}
48
- #else
49
- extern " C" LLVMMemoryBufferRef
50
- LLVMRustCreateMemoryBufferWithContentsOfFile (const char *Path) {
51
- OwningPtr<MemoryBuffer> buf;
52
- error_code err = MemoryBuffer::getFile (Path, buf, -1 , false );
53
- if (err) {
54
- LLVMRustSetLastError (err.message ().c_str ());
55
- return NULL ;
56
- }
57
- return wrap (buf.take ());
58
- }
59
- #endif
60
43
61
44
extern " C" char *LLVMRustGetLastError (void ) {
62
45
char *ret = LastError;
@@ -116,7 +99,6 @@ extern "C" void LLVMAddCallSiteAttribute(LLVMValueRef Instr, unsigned index, uin
116
99
}
117
100
118
101
119
- #if LLVM_VERSION_MINOR >= 5
120
102
extern " C" void LLVMAddDereferenceableCallSiteAttr (LLVMValueRef Instr, unsigned idx, uint64_t b) {
121
103
CallSite Call = CallSite (unwrap<Instruction>(Instr));
122
104
AttrBuilder B;
@@ -126,9 +108,6 @@ extern "C" void LLVMAddDereferenceableCallSiteAttr(LLVMValueRef Instr, unsigned
126
108
AttributeSet::get (Call->getContext (),
127
109
idx, B)));
128
110
}
129
- #else
130
- extern " C" void LLVMAddDereferenceableCallSiteAttr (LLVMValueRef, unsigned , uint64_t ) {}
131
- #endif
132
111
133
112
extern " C" void LLVMAddFunctionAttribute (LLVMValueRef Fn, unsigned index, uint64_t Val) {
134
113
Function *A = unwrap<Function>(Fn);
@@ -137,16 +116,12 @@ extern "C" void LLVMAddFunctionAttribute(LLVMValueRef Fn, unsigned index, uint64
137
116
A->addAttributes (index , AttributeSet::get (A->getContext (), index , B));
138
117
}
139
118
140
- #if LLVM_VERSION_MINOR >= 5
141
119
extern " C" void LLVMAddDereferenceableAttr (LLVMValueRef Fn, unsigned index, uint64_t bytes) {
142
120
Function *A = unwrap<Function>(Fn);
143
121
AttrBuilder B;
144
122
B.addDereferenceableAttr (bytes);
145
123
A->addAttributes (index , AttributeSet::get (A->getContext (), index , B));
146
124
}
147
- #else
148
- extern " C" void LLVMAddDereferenceableAttr (LLVMValueRef, unsigned , uint64_t ) {}
149
- #endif
150
125
151
126
extern " C" void LLVMAddFunctionAttrString (LLVMValueRef Fn, unsigned index, const char *Name) {
152
127
Function *F = unwrap<Function>(Fn);
@@ -199,10 +174,8 @@ extern "C" LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B,
199
174
AtomicOrdering order,
200
175
AtomicOrdering failure_order) {
201
176
return wrap (unwrap (B)->CreateAtomicCmpXchg (unwrap (target), unwrap (old),
202
- unwrap (source), order
203
- #if LLVM_VERSION_MINOR >= 5
204
- , failure_order
205
- #endif
177
+ unwrap (source), order,
178
+ failure_order
206
179
));
207
180
}
208
181
extern " C" LLVMValueRef LLVMBuildAtomicFence (LLVMBuilderRef B, AtomicOrdering order) {
@@ -247,11 +220,7 @@ DIT unwrapDI(LLVMMetadataRef ref) {
247
220
return DIT (ref ? unwrap<MDNode>(ref) : NULL );
248
221
}
249
222
250
- #if LLVM_VERSION_MINOR >= 5
251
223
extern " C" const uint32_t LLVMRustDebugMetadataVersion = DEBUG_METADATA_VERSION;
252
- #else
253
- extern " C" const uint32_t LLVMRustDebugMetadataVersion = 1 ;
254
- #endif
255
224
256
225
extern " C" void LLVMRustAddModuleFlag (LLVMModuleRef M,
257
226
const char *name,
@@ -383,10 +352,8 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateStructType(
383
352
unwrapDI<DIType>(DerivedFrom),
384
353
unwrapDI<DIArray>(Elements),
385
354
RunTimeLang,
386
- unwrapDI<DIType>(VTableHolder)
387
- #if LLVM_VERSION_MINOR >= 4
388
- ,UniqueId
389
- #endif
355
+ unwrapDI<DIType>(VTableHolder),
356
+ UniqueId
390
357
));
391
358
}
392
359
@@ -465,8 +432,8 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateVariable(
465
432
#if LLVM_VERSION_MINOR < 6
466
433
if (AddrOpsCount > 0 ) {
467
434
SmallVector<llvm::Value *, 16 > addr_ops;
468
- llvm::Type *Int64Ty = Type::getInt64Ty (VMContext );
469
- for (int i = 0 ; i < AddrOpsCount; ++i)
435
+ llvm::Type *Int64Ty = Type::getInt64Ty (unwrap<MDNode>(Scope)-> getContext () );
436
+ for (unsigned i = 0 ; i < AddrOpsCount; ++i)
470
437
addr_ops.push_back (ConstantInt::get (Int64Ty, AddrOps[i]));
471
438
472
439
return wrap (Builder->createComplexVariable (
@@ -522,7 +489,11 @@ extern "C" LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(
522
489
LLVMMetadataRef* Ptr ,
523
490
unsigned Count) {
524
491
return wrap (Builder->getOrCreateArray (
492
+ #if LLVM_VERSION_MINOR >= 6
525
493
ArrayRef<Metadata*>(unwrap (Ptr ), Count)));
494
+ #else
495
+ ArrayRef<Value*>(reinterpret_cast <Value**>(Ptr ), Count)));
496
+ #endif
526
497
}
527
498
528
499
extern " C" LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd (
@@ -627,19 +598,11 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateUnionType(
627
598
AlignInBits,
628
599
Flags,
629
600
unwrapDI<DIArray>(Elements),
630
- RunTimeLang
631
- #if LLVM_VERSION_MINOR >= 4
632
- ,UniqueId
633
- #endif
601
+ RunTimeLang,
602
+ UniqueId
634
603
));
635
604
}
636
605
637
- #if LLVM_VERSION_MINOR < 5
638
- extern " C" void LLVMSetUnnamedAddr (LLVMValueRef Value, LLVMBool Unnamed) {
639
- unwrap<GlobalValue>(Value)->setUnnamedAddr (Unnamed);
640
- }
641
- #endif
642
-
643
606
extern " C" LLVMMetadataRef LLVMDIBuilderCreateTemplateTypeParameter (
644
607
DIBuilderRef Builder,
645
608
LLVMMetadataRef Scope,
@@ -730,7 +693,6 @@ extern "C" void LLVMWriteValueToString(LLVMValueRef Value, RustStringRef str) {
730
693
os << " )" ;
731
694
}
732
695
733
- #if LLVM_VERSION_MINOR >= 5
734
696
extern " C" bool
735
697
LLVMRustLinkInExternalBitcode (LLVMModuleRef dst, char *bc, size_t len) {
736
698
Module *Dst = unwrap (dst);
@@ -763,28 +725,7 @@ LLVMRustLinkInExternalBitcode(LLVMModuleRef dst, char *bc, size_t len) {
763
725
}
764
726
return true ;
765
727
}
766
- #else
767
- extern " C" bool
768
- LLVMRustLinkInExternalBitcode (LLVMModuleRef dst, char *bc, size_t len) {
769
- Module *Dst = unwrap (dst);
770
- MemoryBuffer* buf = MemoryBuffer::getMemBufferCopy (StringRef (bc, len));
771
- std::string Err;
772
- Module *Src = llvm::getLazyBitcodeModule (buf, Dst->getContext (), &Err);
773
- if (!Src) {
774
- LLVMRustSetLastError (Err.c_str ());
775
- delete buf;
776
- return false ;
777
- }
778
-
779
- if (Linker::LinkModules (Dst, Src, Linker::DestroySource, &Err)) {
780
- LLVMRustSetLastError (Err.c_str ());
781
- return false ;
782
- }
783
- return true ;
784
- }
785
- #endif
786
728
787
- #if LLVM_VERSION_MINOR >= 5
788
729
extern " C" void *
789
730
LLVMRustOpenArchive (char *path) {
790
731
ErrorOr<std::unique_ptr<MemoryBuffer>> buf_or = MemoryBuffer::getFile (path,
@@ -817,23 +758,6 @@ LLVMRustOpenArchive(char *path) {
817
758
818
759
return ret;
819
760
}
820
- #else
821
- extern " C" void *
822
- LLVMRustOpenArchive (char *path) {
823
- OwningPtr<MemoryBuffer> buf;
824
- error_code err = MemoryBuffer::getFile (path, buf, -1 , false );
825
- if (err) {
826
- LLVMRustSetLastError (err.message ().c_str ());
827
- return NULL ;
828
- }
829
- Archive *ret = new Archive (buf.take (), err);
830
- if (err) {
831
- LLVMRustSetLastError (err.message ().c_str ());
832
- return NULL ;
833
- }
834
- return ret;
835
- }
836
- #endif
837
761
838
762
extern " C" const char *
839
763
#if LLVM_VERSION_MINOR >= 6
@@ -844,21 +768,12 @@ LLVMRustArchiveReadSection(OwningBinary<Archive> *ob, char *name, size_t *size)
844
768
LLVMRustArchiveReadSection (Archive *ar, char *name, size_t *size) {
845
769
#endif
846
770
847
- #if LLVM_VERSION_MINOR >= 5
848
771
Archive::child_iterator child = ar->child_begin (),
849
772
end = ar->child_end ();
850
773
for (; child != end; ++child) {
851
774
ErrorOr<StringRef> name_or_err = child->getName ();
852
775
if (name_or_err.getError ()) continue ;
853
776
StringRef sect_name = name_or_err.get ();
854
- #else
855
- Archive::child_iterator child = ar->begin_children (),
856
- end = ar->end_children ();
857
- for (; child != end; ++child) {
858
- StringRef sect_name;
859
- error_code err = child->getName (sect_name);
860
- if (err) continue ;
861
- #endif
862
777
if (sect_name.trim (" " ) == name) {
863
778
StringRef buf = child->getBuffer ();
864
779
*size = buf.size ();
@@ -877,18 +792,11 @@ LLVMRustDestroyArchive(Archive *ar) {
877
792
delete ar;
878
793
}
879
794
880
- #if LLVM_VERSION_MINOR >= 5
881
795
extern " C" void
882
796
LLVMRustSetDLLExportStorageClass (LLVMValueRef Value) {
883
797
GlobalValue *V = unwrap<GlobalValue>(Value);
884
798
V->setDLLStorageClass (GlobalValue::DLLExportStorageClass);
885
799
}
886
- #else
887
- extern " C" void
888
- LLVMRustSetDLLExportStorageClass (LLVMValueRef Value) {
889
- LLVMSetLinkage (Value, LLVMDLLExportLinkage);
890
- }
891
- #endif
892
800
893
801
extern " C" int
894
802
LLVMVersionMinor () {
@@ -918,11 +826,7 @@ inline section_iterator *unwrap(LLVMSectionIteratorRef SI) {
918
826
extern " C" int
919
827
LLVMRustGetSectionName (LLVMSectionIteratorRef SI, const char **ptr) {
920
828
StringRef ret;
921
- #if LLVM_VERSION_MINOR >= 5
922
829
if (std::error_code ec = (*unwrap (SI))->getName (ret))
923
- #else
924
- if (error_code ec = (*unwrap (SI))->getName (ret))
925
- #endif
926
830
report_fatal_error (ec.message ());
927
831
*ptr = ret.data ();
928
832
return ret.size ();
0 commit comments