================
@@ -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:

I suspect the runtime gave us these "left & right shift" values, and the person 
who wrote this used the obvious implementation.  It could be expressed as a bit 
slice with a little subtraction, true.  Just to be clear, we're not fixing a 
real bug here, we were saying a UInt64 was signed and then ubsan got all shirty 
when we shifted away some bits that would indicate sign.

https://github.com/llvm/llvm-project/pull/86605
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to