<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I just realized I failed to commit the bulk of this patch (and of course, accidentally did a revert…)</div><div class="">Your build will be broken for the next 5 minutes until I actually rewrite the changes and commit them</div><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 12, 2015, at 3:17 PM, Enrico Granata <<a href="mailto:egranata@apple.com" class="">egranata@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">Author: enrico<br class="">Date: Thu Mar 12 17:17:07 2015<br class="">New Revision: 232114<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=232114&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=232114&view=rev</a><br class="">Log:<br class="">Fix a bug in the data formatters where summary strings would not look into the non-synthetic value for child members if the ValueObject being formatted happened to have a synthetic value<br class=""><br class=""><a href="rdar://15630776" class="">rdar://15630776</a><br class=""><br class=""><br class="">Modified:<br class="">    lldb/trunk/include/lldb/Core/ValueObject.h<br class="">    lldb/trunk/source/Core/FormatEntity.cpp<br class="">    lldb/trunk/source/DataFormatters/LibCxx.cpp<br class="">    lldb/trunk/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py<br class=""><br class="">Modified: lldb/trunk/include/lldb/Core/ValueObject.h<br class="">URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/ValueObject.h?rev=232114&r1=232113&r2=232114&view=diff<br class="">==============================================================================<br class="">--- lldb/trunk/include/lldb/Core/ValueObject.h (original)<br class="">+++ lldb/trunk/include/lldb/Core/ValueObject.h Thu Mar 12 17:17:07 2015<br class="">@@ -141,19 +141,27 @@ public:<br class=""><br class="">     struct GetValueForExpressionPathOptions<br class="">     {<br class="">+        enum class SyntheticChildrenTraversal<br class="">+        {<br class="">+            None,<br class="">+            ToSynthetic,<br class="">+            FromSynthetic,<br class="">+            Both<br class="">+        };<br class="">+        <br class="">         bool m_check_dot_vs_arrow_syntax;<br class="">         bool m_no_fragile_ivar;<br class="">         bool m_allow_bitfields_syntax;<br class="">-        bool m_no_synthetic_children;<br class="">+        SyntheticChildrenTraversal m_synthetic_children_traversal;<br class=""><br class="">         GetValueForExpressionPathOptions(bool dot = false,<br class="">                                          bool no_ivar = false,<br class="">                                          bool bitfield = true,<br class="">-                                         bool no_synth = false) :<br class="">+                                         SyntheticChildrenTraversal synth_traverse = SyntheticChildrenTraversal::ToSynthetic) :<br class="">             m_check_dot_vs_arrow_syntax(dot),<br class="">             m_no_fragile_ivar(no_ivar),<br class="">             m_allow_bitfields_syntax(bitfield),<br class="">-            m_no_synthetic_children(no_synth)<br class="">+            m_synthetic_children_traversal(synth_traverse)<br class="">         {<br class="">         }<br class=""><br class="">@@ -200,16 +208,9 @@ public:<br class="">         }<br class=""><br class="">         GetValueForExpressionPathOptions&<br class="">-        DoAllowSyntheticChildren()<br class="">-        {<br class="">-            m_no_synthetic_children = false;<br class="">-            return *this;<br class="">-        }<br class="">-        <br class="">-        GetValueForExpressionPathOptions&<br class="">-        DontAllowSyntheticChildren()<br class="">+        SetSyntheticChildrenTraversal(SyntheticChildrenTraversal traverse)<br class="">         {<br class="">-            m_no_synthetic_children = true;<br class="">+            m_synthetic_children_traversal = traverse;<br class="">             return *this;<br class="">         }<br class=""><br class=""><br class="">Modified: lldb/trunk/source/Core/FormatEntity.cpp<br class="">URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/FormatEntity.cpp?rev=232114&r1=232113&r2=232114&view=diff<br class="">==============================================================================<br class="">--- lldb/trunk/source/Core/FormatEntity.cpp (original)<br class="">+++ lldb/trunk/source/Core/FormatEntity.cpp Thu Mar 12 17:17:07 2015<br class="">@@ -766,7 +766,7 @@ DumpValue (Stream &s,<br class="">     ValueObject::ExpressionPathAftermath what_next = (do_deref_pointer ?<br class="">                                                       ValueObject::eExpressionPathAftermathDereference : ValueObject::eExpressionPathAftermathNothing);<br class="">     ValueObject::GetValueForExpressionPathOptions options;<br class="">-    options.DontCheckDotVsArrowSyntax().DoAllowBitfieldSyntax().DoAllowFragileIVar().DoAllowSyntheticChildren();<br class="">+    options.DontCheckDotVsArrowSyntax().DoAllowBitfieldSyntax().DoAllowFragileIVar().SetSyntheticChildrenTraversal(ValueObject::GetValueForExpressionPathOptions::SyntheticChildrenTraversal::Both);<br class="">     ValueObject* target = NULL;<br class="">     const char* var_name_final_if_array_range = NULL;<br class="">     size_t close_bracket_index = llvm::StringRef::npos;<br class=""><br class="">Modified: lldb/trunk/source/DataFormatters/LibCxx.cpp<br class="">URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/LibCxx.cpp?rev=232114&r1=232113&r2=232114&view=diff<br class="">==============================================================================<br class="">--- lldb/trunk/source/DataFormatters/LibCxx.cpp (original)<br class="">+++ lldb/trunk/source/DataFormatters/LibCxx.cpp Thu Mar 12 17:17:07 2015<br class="">@@ -266,7 +266,7 @@ lldb_private::formatters::LibCxxMapItera<br class="">                                                      NULL,<br class="">                                                      NULL,<br class="">                                                      NULL,<br class="">-                                                     ValueObject::GetValueForExpressionPathOptions().DontCheckDotVsArrowSyntax().DontAllowSyntheticChildren(),<br class="">+                                                     ValueObject::GetValueForExpressionPathOptions().DontCheckDotVsArrowSyntax().SetSyntheticChildrenTraversal(ValueObject::GetValueForExpressionPathOptions::SyntheticChildrenTraversal::None),<br class="">                                                      NULL).get();<br class=""><br class="">     return false;<br class=""><br class="">Modified: lldb/trunk/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py<br class="">URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py?rev=232114&r1=232113&r2=232114&view=diff<br class="">==============================================================================<br class="">--- lldb/trunk/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py (original)<br class="">+++ lldb/trunk/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py Thu Mar 12 17:17:07 2015<br class="">@@ -14,14 +14,12 @@ class SynthDataFormatterTestCase(TestBas<br class=""><br class="">     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")<br class="">     @dsym_test<br class="">-    @unittest2.expectedFailure("rdar://15630776 - Summary cannot reference non-synthetic children if synthetic children exist")<br class="">     def test_with_dsym_and_run_command(self):<br class="">         """Test data formatter commands."""<br class="">         self.buildDsym()<br class="">         self.data_formatter_commands()<br class=""><br class="">     @dwarf_test<br class="">-    @unittest2.expectedFailure("rdar://15630776 - Summary cannot reference non-synthetic children if synthetic children exist")<br class="">     def test_with_dwarf_and_run_command(self):<br class="">         """Test data formatter commands."""<br class="">         self.buildDwarf()<br class=""><br class=""><br class="">_______________________________________________<br class="">lldb-commits mailing list<br class="">lldb-commits@cs.uiuc.edu<br class="">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits<br class=""></div></blockquote></div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Thanks,</div><div class=""><i class="">- Enrico</i><br class="">📩 egranata@<font color="#ff2600" class=""></font>.com ☎️ 27683</div><div class=""><br class=""></div></div></div></div></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""></body></html>