@@ -496,9 +496,11 @@ static DINode::DIFlags fromRust(LLVMRustDIFlags Flags) {
496496  if  (isSet (Flags & LLVMRustDIFlags::FlagAppleBlock)) {
497497    Result |= DINode::DIFlags::FlagAppleBlock;
498498  }
499+ #if  LLVM_VERSION_LT(10, 0)
499500  if  (isSet (Flags & LLVMRustDIFlags::FlagBlockByrefStruct)) {
500501    Result |= DINode::DIFlags::FlagBlockByrefStruct;
501502  }
503+ #endif 
502504  if  (isSet (Flags & LLVMRustDIFlags::FlagVirtual)) {
503505    Result |= DINode::DIFlags::FlagVirtual;
504506  }
@@ -825,6 +827,9 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
825827  llvm::DIGlobalVariableExpression *VarExpr = Builder->createGlobalVariableExpression (
826828      unwrapDI<DIDescriptor>(Context), Name, LinkageName,
827829      unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
830+ #if  LLVM_VERSION_GE(10, 0)
831+       /*  isDefined */ true ,
832+ #endif 
828833      InitExpr, unwrapDIPtr<MDNode>(Decl),
829834#if  LLVM_VERSION_GE(8, 0)
830835      /*  templateParams */ nullptr ,
@@ -998,11 +1003,19 @@ inline section_iterator *unwrap(LLVMSectionIteratorRef SI) {
9981003
9991004extern  " C" size_t  LLVMRustGetSectionName (LLVMSectionIteratorRef SI,
10001005                                         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 
10011013  StringRef Ret;
10021014  if  (std::error_code EC = (*unwrap (SI))->getName (Ret))
10031015    report_fatal_error (EC.message ());
10041016  *Ptr = Ret.data ();
10051017  return  Ret.size ();
1018+ #endif 
10061019}
10071020
10081021//  LLVMArrayType function does not support 64-bit ElementCount
@@ -1253,20 +1266,34 @@ extern "C" LLVMValueRef LLVMRustBuildMemCpy(LLVMBuilderRef B,
12531266                                            LLVMValueRef Dst, unsigned  DstAlign,
12541267                                            LLVMValueRef Src, unsigned  SrcAlign,
12551268                                            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 
12561275  return  wrap (unwrap (B)->CreateMemCpy (
12571276      unwrap (Dst), DstAlign,
12581277      unwrap (Src), SrcAlign,
12591278      unwrap (Size), IsVolatile));
1279+ #endif 
12601280}
12611281
12621282extern  " C" LLVMRustBuildMemMove (LLVMBuilderRef B,
12631283                                             LLVMValueRef Dst, unsigned  DstAlign,
12641284                                             LLVMValueRef Src, unsigned  SrcAlign,
12651285                                             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 
12661292  return  wrap (unwrap (B)->CreateMemMove (
12671293      unwrap (Dst), DstAlign,
12681294      unwrap (Src), SrcAlign,
12691295      unwrap (Size), IsVolatile));
1296+ #endif 
12701297}
12711298
12721299extern  " C" 
@@ -1450,7 +1477,11 @@ struct LLVMRustModuleBuffer {
14501477
14511478extern  " C" 
14521479LLVMRustModuleBufferCreate (LLVMModuleRef M) {
1480+ #if  LLVM_VERSION_GE(10, 0)
1481+   auto  Ret = std::make_unique<LLVMRustModuleBuffer>();
1482+ #else 
14531483  auto  Ret = llvm::make_unique<LLVMRustModuleBuffer>();
1484+ #endif 
14541485  {
14551486    raw_string_ostream OS (Ret->data );
14561487    {
0 commit comments