> On Sep 29, 2016, at 10:50 AM, Zachary Turner <ztur...@google.com> wrote: > > > > On Thu, Sep 29, 2016 at 10:43 AM Enrico Granata <egran...@apple.com > <mailto:egran...@apple.com>> wrote: >> On Sep 28, 2016, at 5:58 PM, Zachary Turner <ztur...@google.com >> <mailto:ztur...@google.com>> wrote: >> >> >> >> On Wed, Sep 28, 2016 at 4:02 PM Enrico Granata via lldb-commits >> <lldb-commits@lists.llvm.org <mailto:lldb-commits@lists.llvm.org>> wrote: >> >> - >> + >> + static ConstString g___i_("__i_"); >> + >> // this must be a ValueObject* because it is a child of the ValueObject >> we are >> // producing children for >> // it if were a ValueObjectSP, we would end up with a loop (iterator -> >> @@ -281,6 +287,57 @@ bool lldb_private::formatters::LibCxxMap >> SyntheticChildrenTraversal::None), >> nullptr) >> .get(); >> + >> + if (!m_pair_ptr) { >> + m_pair_ptr = valobj_sp->GetValueForExpressionPath(".__i_.__ptr_", >> nullptr, nullptr, nullptr, >> + >> ValueObject::GetValueForExpressionPathOptions() >> + >> .DontCheckDotVsArrowSyntax() >> + >> .SetSyntheticChildrenTraversal( >> + >> ValueObject::GetValueForExpressionPathOptions:: >> + >> SyntheticChildrenTraversal::None), >> + nullptr) >> + .get(); >> + if (m_pair_ptr) { >> + auto __i_(valobj_sp->GetChildMemberWithName(g___i_, true)); >> Is there any reason we need to use such weird variable names? This looks >> like undefined behavior to me. Variables with more than one adjacent >> underscore are reserved. > > I am naming the variable the same as the corresponding variable in the type I > am formatting. Future me is usually thankful when I do that.. it helps keep > track of what ValueObject matches what child element; in this case, our > iterators have an __i_ child > > Ahh, makes sense. Unfortunately at least in this case it leads to illegal > variable names. Is there anything else it could be named that would be > similar enough to help remembering but a valid c++ identifier?
Sure, we just add a "vo" prefix, like vo__i_ I thought the rule about __ being magic only applied to global identifiers, and I have never seen any compiler complain about those identifiers in practice. But reserved is reserved, so thanks for pointing that out. Thanks, - Enrico 📩 egranata@.com ☎️ 27683
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits