[Lldb-commits] [lldb] 840bb72 - [lldb] Avoid pointer element type accesses

Nikita Popov via lldb-commits lldb-commits at lists.llvm.org
Thu Mar 24 05:09:31 PDT 2022


Author: Nikita Popov
Date: 2022-03-24T13:09:23+01:00
New Revision: 840bb725435c729f47458c48723d434ce45d57ee

URL: https://github.com/llvm/llvm-project/commit/840bb725435c729f47458c48723d434ce45d57ee
DIFF: https://github.com/llvm/llvm-project/commit/840bb725435c729f47458c48723d434ce45d57ee.diff

LOG: [lldb] Avoid pointer element type accesses

Added: 
    

Modified: 
    lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
    llvm/docs/OpaquePointers.rst

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
index 10d1e99d756f8..60fe84035a5b7 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
@@ -1757,20 +1757,19 @@ bool IRForTarget::ReplaceVariables(Function &llvm_function) {
             llvm::Instruction *entry_instruction = llvm::cast<Instruction>(
                 m_entry_instruction_finder.GetValue(function));
 
+            Type *int8Ty = Type::getInt8Ty(function->getContext());
             ConstantInt *offset_int(
                 ConstantInt::get(offset_type, offset, true));
             GetElementPtrInst *get_element_ptr = GetElementPtrInst::Create(
-                argument->getType()->getPointerElementType(), argument,
-                offset_int, "", entry_instruction);
+                int8Ty, argument, offset_int, "", entry_instruction);
 
             if (name == m_result_name && !m_result_is_pointer) {
               BitCastInst *bit_cast = new BitCastInst(
                   get_element_ptr, value->getType()->getPointerTo(), "",
                   entry_instruction);
 
-              LoadInst *load =
-                  new LoadInst(bit_cast->getType()->getPointerElementType(),
-                               bit_cast, "", entry_instruction);
+              LoadInst *load = new LoadInst(value->getType(), bit_cast, "",
+                                            entry_instruction);
 
               return load;
             } else {

diff  --git a/llvm/docs/OpaquePointers.rst b/llvm/docs/OpaquePointers.rst
index b13a82895edb3..2e15ce4f11946 100644
--- a/llvm/docs/OpaquePointers.rst
+++ b/llvm/docs/OpaquePointers.rst
@@ -204,8 +204,6 @@ open problems:
 
 * Some pointer element type uses remain in LLVM.
 
-* Some pointer element type uses remain in LLDB.
-
 * Some pointer element type uses remain in MLIR.
 
 * Some pointer element type uses remain in Polly.


        


More information about the lldb-commits mailing list