@@ -496,9 +496,11 @@ static DINode::DIFlags fromRust(LLVMRustDIFlags Flags) {
496
496
if (isSet (Flags & LLVMRustDIFlags::FlagAppleBlock)) {
497
497
Result |= DINode::DIFlags::FlagAppleBlock;
498
498
}
499
+ #if LLVM_VERSION_LT(10, 0)
499
500
if (isSet (Flags & LLVMRustDIFlags::FlagBlockByrefStruct)) {
500
501
Result |= DINode::DIFlags::FlagBlockByrefStruct;
501
502
}
503
+ #endif
502
504
if (isSet (Flags & LLVMRustDIFlags::FlagVirtual)) {
503
505
Result |= DINode::DIFlags::FlagVirtual;
504
506
}
@@ -825,6 +827,9 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
825
827
llvm::DIGlobalVariableExpression *VarExpr = Builder->createGlobalVariableExpression (
826
828
unwrapDI<DIDescriptor>(Context), Name, LinkageName,
827
829
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
830
+ #if LLVM_VERSION_GE(10, 0)
831
+ /* isDefined */ true ,
832
+ #endif
828
833
InitExpr, unwrapDIPtr<MDNode>(Decl),
829
834
#if LLVM_VERSION_GE(8, 0)
830
835
/* templateParams */ nullptr ,
@@ -998,11 +1003,19 @@ inline section_iterator *unwrap(LLVMSectionIteratorRef SI) {
998
1003
999
1004
extern " C" size_t LLVMRustGetSectionName (LLVMSectionIteratorRef SI,
1000
1005
const char **Ptr) {
1006
+ #if LLVM_VERSION_GE(10, 0)
1007
+ auto NameOrErr = (*unwrap (SI))->getName ();
1008
+ if (!NameOrErr)
1009
+ report_fatal_error (NameOrErr.takeError ());
1010
+ *Ptr = NameOrErr->data ();
1011
+ return NameOrErr->size ();
1012
+ #else
1001
1013
StringRef Ret;
1002
1014
if (std::error_code EC = (*unwrap (SI))->getName (Ret))
1003
1015
report_fatal_error (EC.message ());
1004
1016
*Ptr = Ret.data ();
1005
1017
return Ret.size ();
1018
+ #endif
1006
1019
}
1007
1020
1008
1021
// LLVMArrayType function does not support 64-bit ElementCount
@@ -1253,20 +1266,34 @@ extern "C" LLVMValueRef LLVMRustBuildMemCpy(LLVMBuilderRef B,
1253
1266
LLVMValueRef Dst, unsigned DstAlign,
1254
1267
LLVMValueRef Src, unsigned SrcAlign,
1255
1268
LLVMValueRef Size, bool IsVolatile) {
1269
+ #if LLVM_VERSION_GE(10, 0)
1270
+ return wrap (unwrap (B)->CreateMemCpy (
1271
+ unwrap (Dst), MaybeAlign (DstAlign),
1272
+ unwrap (Src), MaybeAlign (SrcAlign),
1273
+ unwrap (Size), IsVolatile));
1274
+ #else
1256
1275
return wrap (unwrap (B)->CreateMemCpy (
1257
1276
unwrap (Dst), DstAlign,
1258
1277
unwrap (Src), SrcAlign,
1259
1278
unwrap (Size), IsVolatile));
1279
+ #endif
1260
1280
}
1261
1281
1262
1282
extern " C" LLVMValueRef LLVMRustBuildMemMove (LLVMBuilderRef B,
1263
1283
LLVMValueRef Dst, unsigned DstAlign,
1264
1284
LLVMValueRef Src, unsigned SrcAlign,
1265
1285
LLVMValueRef Size, bool IsVolatile) {
1286
+ #if LLVM_VERSION_GE(10, 0)
1287
+ return wrap (unwrap (B)->CreateMemMove (
1288
+ unwrap (Dst), MaybeAlign (DstAlign),
1289
+ unwrap (Src), MaybeAlign (SrcAlign),
1290
+ unwrap (Size), IsVolatile));
1291
+ #else
1266
1292
return wrap (unwrap (B)->CreateMemMove (
1267
1293
unwrap (Dst), DstAlign,
1268
1294
unwrap (Src), SrcAlign,
1269
1295
unwrap (Size), IsVolatile));
1296
+ #endif
1270
1297
}
1271
1298
1272
1299
extern " C" LLVMValueRef
@@ -1450,7 +1477,11 @@ struct LLVMRustModuleBuffer {
1450
1477
1451
1478
extern " C" LLVMRustModuleBuffer*
1452
1479
LLVMRustModuleBufferCreate (LLVMModuleRef M) {
1480
+ #if LLVM_VERSION_GE(10, 0)
1481
+ auto Ret = std::make_unique<LLVMRustModuleBuffer>();
1482
+ #else
1453
1483
auto Ret = llvm::make_unique<LLVMRustModuleBuffer>();
1484
+ #endif
1454
1485
{
1455
1486
raw_string_ostream OS (Ret->data );
1456
1487
{
0 commit comments