diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-07-31 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-08-04 15:51:30 +0200 |
| commit | 4013e094f59109779f1294adad96caa2eebf7e2d (patch) | |
| tree | 2e19a388b0e70c1ce55128e62dd45827ad8ec5a3 /compiler/rustc_codegen_llvm/src/builder.rs | |
| parent | 838042aa4e9f7b313cd79420d7613dc5af5343e5 (diff) | |
| download | rust-4013e094f59109779f1294adad96caa2eebf7e2d.tar.gz rust-4013e094f59109779f1294adad96caa2eebf7e2d.zip | |
Prepare gep for opaque pointers
Implement gep using LLVMBuildGEP2 which takes an explicit type argument instead of deriving it from a pointer type.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/builder.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/builder.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_llvm/src/builder.rs b/compiler/rustc_codegen_llvm/src/builder.rs index 0e2c4ddc2a3..e81fbdf0742 100644 --- a/compiler/rustc_codegen_llvm/src/builder.rs +++ b/compiler/rustc_codegen_llvm/src/builder.rs @@ -640,10 +640,11 @@ impl BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> { } } - fn gep(&mut self, ptr: &'ll Value, indices: &[&'ll Value]) -> &'ll Value { + fn gep(&mut self, ty: &'ll Type, ptr: &'ll Value, indices: &[&'ll Value]) -> &'ll Value { unsafe { - llvm::LLVMBuildGEP( + llvm::LLVMBuildGEP2( self.llbuilder, + ty, ptr, indices.as_ptr(), indices.len() as c_uint, |
