[all-commits] [llvm/llvm-project] 97ca9c: [lldb] Fix bitfield "frame var" for pointers (pr47...

Pavel Labath via All-commits all-commits at lists.llvm.org
Mon Oct 26 04:01:42 PDT 2020


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

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

  Log Message:
  -----------
  [lldb] Fix bitfield "frame var" for pointers (pr47743)

Displaying large packed bitfields did not work if one was accessing them
through a pointer, and he used the "->" notation ("[0]." notation is
fine). The reason for that is that implicit dereference in -> is plumbed
all the way down to ValueObjectChild::UpdateValue, where the process of
fetching the child value was forked for this flag. The bitfield
"sliding" code was implemented only for the branch which did not require
dereferencing.

This patch restructures the function to avoid this mistake. Processing
now happens in two stages.
- first the parent is dereferenced (if needed)
- then the child value is computed (this step includes sliding and is
  common for both branches)

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


  Commit: e4cc6e9bcdff5fe979ab72025cb803d723cd9c31
      https://github.com/llvm/llvm-project/commit/e4cc6e9bcdff5fe979ab72025cb803d723cd9c31
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2020-10-26 (Mon, 26 Oct 2020)

  Changed paths:
    M lldb/include/lldb/Host/PseudoTerminal.h
    M lldb/source/Host/common/PseudoTerminal.cpp
    M lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp

  Log Message:
  -----------
  [lldb] Modernize PseudoTerminal::Fork


Compare: https://github.com/llvm/llvm-project/compare/f5ca27569eac...e4cc6e9bcdff


More information about the All-commits mailing list