[all-commits] [llvm/llvm-project] d4a7c7: [lldb] Add a cmake warning about the python/swig i...

Pavel Labath via All-commits all-commits at lists.llvm.org
Thu Oct 8 09:43:13 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d4a7c70751cf5c0b0ce344555e3966ddc80290d2
      https://github.com/llvm/llvm-project/commit/d4a7c70751cf5c0b0ce344555e3966ddc80290d2
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2020-10-08 (Thu, 08 Oct 2020)

  Changed paths:
    M lldb/cmake/modules/FindPythonAndSwig.cmake

  Log Message:
  -----------
  [lldb] Add a cmake warning about the python/swig incompatibility

Raise awareness of the fact that some versions of swig and python (and
build types) just don't mix.

One day this will be a reason to require swig>=4.0, but this version is
too hot off the press right now..

Differential Revision: https://reviews.llvm.org/D88967


  Commit: 19d64138e6a708d1d0571da3ac51e1b4777c2b47
      https://github.com/llvm/llvm-project/commit/19d64138e6a708d1d0571da3ac51e1b4777c2b47
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2020-10-08 (Thu, 08 Oct 2020)

  Changed paths:
    M lldb/source/Core/ValueObjectChild.cpp
    M lldb/test/API/lang/c/bitfields/TestBitfields.py

  Log Message:
  -----------
  [lldb] Fix "frame var" for large bitfields

The problem here is in the "sliding" code in
ValueObjectChild::UpdateValue. It modifies m_bitfield_bit_offset and
m_value to ensure the bitfield value fits the window given by the
underlying type.

However, this is broken next time UpdateValue is called, because it
updates the m_value value from the parent. However, the value cannot be
slid again because the m_bitfield_bit_offset is already modified.

It seems this can happen only under specific circumstances. One way to
trigger is is to run an expression which can be interpreted (jitting it
causes a new StackFrame and ValueObject variables to be created).

I fix this bug by modifying m_byte_offset instead of m_scalar, and
ensuring the changes are folded into m_scalar regardless of how many
times UpdateValue is called.

Differential Revision: https://reviews.llvm.org/D88992


Compare: https://github.com/llvm/llvm-project/compare/4424d2428aeb...19d64138e6a7


More information about the All-commits mailing list