diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2021-07-04 17:49:51 +0200 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2021-07-09 22:00:19 +0200 |
| commit | 33e9a6b565ddd7f20a5fd3f455eb2f3109d41801 (patch) | |
| tree | 104635f13538c1b8ed8157802f77289e12effc79 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | |
| parent | 619c27a53959e2d79aadb01cba5b2c49756df771 (diff) | |
| download | rust-33e9a6b565ddd7f20a5fd3f455eb2f3109d41801.tar.gz rust-33e9a6b565ddd7f20a5fd3f455eb2f3109d41801.zip | |
Pass type when creating atomic load
Instead of determining it from the pointer type, explicitly pass the type to load.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
| -rw-r--r-- | compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp index 9b757eb40c1..4cdc8a4155b 100644 --- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp @@ -349,11 +349,10 @@ extern "C" void LLVMRustSetFastMath(LLVMValueRef V) { } extern "C" LLVMValueRef -LLVMRustBuildAtomicLoad(LLVMBuilderRef B, LLVMValueRef Source, const char *Name, - LLVMAtomicOrdering Order) { +LLVMRustBuildAtomicLoad(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Source, + const char *Name, LLVMAtomicOrdering Order) { Value *Ptr = unwrap(Source); - Type *Ty = Ptr->getType()->getPointerElementType(); - LoadInst *LI = unwrap(B)->CreateLoad(Ty, Ptr, Name); + LoadInst *LI = unwrap(B)->CreateLoad(unwrap(Ty), Ptr, Name); LI->setAtomic(fromRust(Order)); return wrap(LI); } |
