diff options
| author | bors <bors@rust-lang.org> | 2017-03-20 08:31:16 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-03-20 08:31:16 +0000 |
| commit | 244f893ed704a60841d4615445d540a21a8d7722 (patch) | |
| tree | ef03d7fdd32204abf7e236da22fb99f85fe7922e /src/rustllvm/RustWrapper.cpp | |
| parent | 6738cd4d473668f7af381826d634e573d15e1f11 (diff) | |
| parent | d49f86901cf1128cdc00b7a1b276f6bf266bf937 (diff) | |
| download | rust-244f893ed704a60841d4615445d540a21a8d7722.tar.gz rust-244f893ed704a60841d4615445d540a21a8d7722.zip | |
Auto merge of #40659 - frewsxcv:rollup, r=frewsxcv
Rollup of 9 pull requests - Successful merges: #40241, #40281, #40398, #40521, #40532, #40554, #40566, #40581, #40587 - Failed merges:
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index e89f48b4105..5ab786f40b9 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -9,6 +9,7 @@ // except according to those terms. #include "rustllvm.h" +#include "llvm/IR/DebugInfoMetadata.h" #include "llvm/IR/DiagnosticInfo.h" #include "llvm/IR/DiagnosticPrinter.h" #include "llvm/IR/Instructions.h" @@ -594,7 +595,7 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStaticVariable( const char *LinkageName, LLVMRustMetadataRef File, unsigned LineNo, LLVMRustMetadataRef Ty, bool IsLocalToUnit, LLVMValueRef V, LLVMRustMetadataRef Decl = nullptr, uint32_t AlignInBits = 0) { - Constant *InitVal = cast<Constant>(unwrap(V)); + llvm::GlobalVariable *InitVal = cast<llvm::GlobalVariable>(unwrap(V)); #if LLVM_VERSION_GE(4, 0) llvm::DIExpression *InitExpr = nullptr; @@ -606,26 +607,21 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStaticVariable( InitExpr = Builder->createConstantValueExpression( FPVal->getValueAPF().bitcastToAPInt().getZExtValue()); } -#endif -#if LLVM_VERSION_GE(4, 0) - return wrap(Builder->createGlobalVariableExpression( + llvm::DIGlobalVariableExpression *VarExpr = Builder->createGlobalVariableExpression( + unwrapDI<DIDescriptor>(Context), Name, LinkageName, + unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit, + InitExpr, unwrapDIPtr<MDNode>(Decl), AlignInBits); + + InitVal->setMetadata("dbg", VarExpr); + + return wrap(VarExpr); #else return wrap(Builder->createGlobalVariable( -#endif unwrapDI<DIDescriptor>(Context), Name, LinkageName, unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit, -#if LLVM_VERSION_GE(4, 0) - InitExpr, -#else - InitVal, -#endif - unwrapDIPtr<MDNode>(Decl) -#if LLVM_VERSION_GE(4, 0) - , - AlignInBits + InitVal, unwrapDIPtr<MDNode>(Decl))); #endif - )); } extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateVariable( |
