[all-commits] [llvm/llvm-project] 44bb44: [lldb][DataFormatter] Add dereference support to l...

Michael Buch via All-commits all-commits at lists.llvm.org
Wed May 24 05:02:15 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 44bb442fd5be3860e7819cb216621b5ea59970c3
      https://github.com/llvm/llvm-project/commit/44bb442fd5be3860e7819cb216621b5ea59970c3
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2023-05-24 (Wed, 24 May 2023)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/main.cpp

  Log Message:
  -----------
  [lldb][DataFormatter] Add dereference support to libstdcpp std::shared_ptr formatter

This mimicks the implementation of the libstdcpp std::unique_ptr
formatter.

This has been attempted several years ago in
`0789722d85cf1f1fdbe2ffb2245ea0ba034a9f94` but was reverted in
`e7dd3972094c2f2fb42dc9d4d5344e54a431e2ce`.

The difference to the original patch is that we now maintain
a `$$dereference$$` member and we only store weak pointers
to the other children inside the synthetic frontend. This is
what the libc++ formatters do to prevent the recursion mentioned
in the revert commit.




More information about the All-commits mailing list