9
9
// except according to those terms.
10
10
11
11
#include " rustllvm.h"
12
+ #include " llvm/IR/DebugInfoMetadata.h"
12
13
#include " llvm/IR/DiagnosticInfo.h"
13
14
#include " llvm/IR/DiagnosticPrinter.h"
14
15
#include " llvm/IR/Instructions.h"
@@ -594,7 +595,7 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStaticVariable(
594
595
const char *LinkageName, LLVMRustMetadataRef File, unsigned LineNo,
595
596
LLVMRustMetadataRef Ty, bool IsLocalToUnit, LLVMValueRef V,
596
597
LLVMRustMetadataRef Decl = nullptr , uint32_t AlignInBits = 0 ) {
597
- Constant *InitVal = cast<Constant >(unwrap (V));
598
+ llvm::GlobalVariable *InitVal = cast<llvm::GlobalVariable >(unwrap (V));
598
599
599
600
#if LLVM_VERSION_GE(4, 0)
600
601
llvm::DIExpression *InitExpr = nullptr ;
@@ -606,26 +607,21 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStaticVariable(
606
607
InitExpr = Builder->createConstantValueExpression (
607
608
FPVal->getValueAPF ().bitcastToAPInt ().getZExtValue ());
608
609
}
609
- #endif
610
610
611
- #if LLVM_VERSION_GE(4, 0)
612
- return wrap (Builder->createGlobalVariableExpression (
611
+ llvm::DIGlobalVariableExpression *VarExpr = Builder->createGlobalVariableExpression (
612
+ unwrapDI<DIDescriptor>(Context), Name, LinkageName,
613
+ unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
614
+ InitExpr, unwrapDIPtr<MDNode>(Decl), AlignInBits);
615
+
616
+ InitVal->setMetadata (" dbg" , VarExpr);
617
+
618
+ return wrap (VarExpr);
613
619
#else
614
620
return wrap (Builder->createGlobalVariable (
615
- #endif
616
621
unwrapDI<DIDescriptor>(Context), Name, LinkageName,
617
622
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
618
- #if LLVM_VERSION_GE(4, 0)
619
- InitExpr,
620
- #else
621
- InitVal,
622
- #endif
623
- unwrapDIPtr<MDNode>(Decl)
624
- #if LLVM_VERSION_GE(4, 0)
625
- ,
626
- AlignInBits
623
+ InitVal, unwrapDIPtr<MDNode>(Decl)));
627
624
#endif
628
- ));
629
625
}
630
626
631
627
extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateVariable (
0 commit comments