jwnhy added a comment. It seems this is more complicated than I originally thought. My fix is also flawed when it comes the following program. Let `overhang_bytes = 0` will overflow the otherside by 1 bit and thus output a wrong value.
But changing everything to signed does not resolve this issue as the following line is a concern. m_value.GetScalar() += m_byte_offset; // ValueObjectChild.cpp:181 #pragma pack(1) struct { signed long long f0 : 1; unsigned f5 : 32; } g_96 = {1, 0xffffffff}; int main() {return 0;} Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146919/new/ https://reviews.llvm.org/D146919 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits