labath added inline comments.
================ Comment at: source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp:129 if (m_ptr_obj->GetValueAsUnsigned(0) == 0) { stream.Printf("nullptr"); ---------------- granata.enrico wrote: > This is very nitpick-y but why not > > lldb::addr_t ptr_value = m_ptr_obj->GetValueAsUnsigned(LLDB_INVALID_ADDRESS) > switch (ptr_value) { > case 0: stream.Printf("nullptr"); break; > case LLDB_INVALID_ADDRESS: return false; > default: stream.Printf("0x%" PRIx64, ptr_value); break; > } > > modulo clang-formatting the above, of course. > I've changed this to: ``` uint64_t ptr_value = m_ptr_obj->GetValueAsUnsigned(0, &success); if (!success) return false; if (ptr_value == 0) stream.Printf("nullptr"); else stream.Printf("0x%" PRIx64, ptr_value); ``` This should address the issue of not printing a bogus value if we fail to read the value, but avoid the case where the pointer value *is* 0xffff.. (which it can legitimately be, e.g. with custom deleters, or if the inferior corrupts it's memory). At that point, the switch is not necessary. https://reviews.llvm.org/D26403 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits