[Lldb-commits] [lldb] [lldb] [ObjC runtime] Don't cast to signed when left shifting (PR #86605)
    Jason Molenda via lldb-commits 
    lldb-commits at lists.llvm.org
       
    Tue Mar 26 10:39:26 PDT 2024
    
    
  
================
@@ -3154,7 +3154,7 @@ AppleObjCRuntimeV2::TaggedPointerVendorExtended::GetClassDescriptor(
                             << m_objc_debug_taggedpointer_ext_payload_lshift) >>
                            m_objc_debug_taggedpointer_ext_payload_rshift);
   int64_t data_payload_signed =
-      ((int64_t)((int64_t)unobfuscated
+      ((int64_t)((uint64_t)unobfuscated
                  << m_objc_debug_taggedpointer_ext_payload_lshift) >>
----------------
jasonmolenda wrote:
e.g. ```
(lldb) p (-5LL <<60) >> 60
(long long) -5
```
if the bit slice we're pulling out has its high bit set, that'll shfit down and be sign extended.
https://github.com/llvm/llvm-project/pull/86605
    
    
More information about the lldb-commits
mailing list