aprantl added a comment. @dblaikie wrote:
> (idle question: Is this code remotely related to any code in LLVM's > libDebugInfoDWARF? Does this patch take us closer to or further away from > unifying them? If it takes us further away, any chance of designing it in a > direction that points towards each other rather than away from?) There's definitely an opportunity to refactor the main loop of Evaluate() to use llvm::DWARFExpression::iterator. I would say The impact of this patch towards that goal is neutral. The iterator (and all of libDebugInfo) doesn't care about the semantics of DWARF expressions. ================ Comment at: lldb/source/Expression/DWARFExpression.cpp:2615 if (stack.empty()) { // Nothing on the stack, check if we created a piece value from DW_OP_piece ---------------- @labath wrote: > Are you sure that this logic is correct in presence of DW_OP(_bit)_piece? If > I follow this right, then the final value type will be determined by the last > operand. That sounds like it could be right for regular dwarf expressions, > but I'm not sure about those with pieces. The classification function will > mark those as "memory", and that doesn't sound right... DW_OP_pieces are handled in this block. For your immediate question, this means that this patch is safe. However, it also highlights that this patch isn't fixing the same bug in a composite location description. I'll address this in my next revision of the patch. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D98996/new/ https://reviews.llvm.org/D98996 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits