[PATCH] D47932: Fix tuple getter in std unique pointer pretty-printer

Pavel Labath via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 11 07:57:20 PDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL334411: Fix tuple getter in std unique pointer pretty-printer (authored by labath, committed by ).
Herald added a subscriber: llvm-commits.

Changed prior to commit:
  https://reviews.llvm.org/D47932?vs=150456&id=150759#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D47932

Files:
  lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/TestDataFormatterInvalidStdUniquePtr.py
  lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/main.cpp
  lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp


Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/main.cpp
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/main.cpp
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/main.cpp
@@ -0,0 +1,11 @@
+// Test that we don't crash when trying to pretty-print structures that don't
+// have the layout our data formatters expect.
+namespace std {
+template<typename T, typename Deleter = void>
+class unique_ptr {};
+}
+
+int main() {
+  std::unique_ptr<int> U;
+  return 0; //% self.expect("frame variable U", substrs=["unique_ptr", "{}"])
+}
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/TestDataFormatterInvalidStdUniquePtr.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/TestDataFormatterInvalidStdUniquePtr.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/invalid/TestDataFormatterInvalidStdUniquePtr.py
@@ -0,0 +1,5 @@
+import lldbsuite.test.lldbinline as lldbinline
+from lldbsuite.test.decorators import *
+
+lldbinline.MakeInlineTest(__file__, globals(), [no_debug_info_test])
+
Index: lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
===================================================================
--- lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
+++ lldb/trunk/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
@@ -67,6 +67,8 @@
 
   ValueObjectSP obj_child_sp =
       valobj_sp->GetChildMemberWithName(ConstString("_M_t"), true);
+  if (!obj_child_sp)
+      return nullptr;
 
   ValueObjectSP obj_subchild_sp =
       obj_child_sp->GetChildMemberWithName(ConstString("_M_t"), true);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D47932.150759.patch
Type: text/x-patch
Size: 2150 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180611/ead7995b/attachment.bin>


More information about the llvm-commits mailing list