bulbazord added a comment.
I feel a little strange about having `SBTarget::SetLabel` give a label to a
target that is anything other than what the user specified. In the test, you
attempt to name 2 targets `cat`. The first one succeeds, the second one also
succeeds but names it `cat 2` (where 2 is the index of the target). I think we
should probably give some kind of error instead of doing that.
================
Comment at: lldb/source/API/SBTarget.cpp:1614-1620
+const char *SBTarget::SetLabel(const char *label) {
+ LLDB_INSTRUMENT_VA(this, label);
+
+ llvm::StringRef label_ref(label);
+ size_t label_is_integral = LLDB_INVALID_INDEX32;
+ if (!label_ref.empty() && llvm::to_integer(label_ref, label_is_integral))
+ return nullptr;
----------------
What if this method returned an SBError that communicated the issue?
Specifically, something like `target labels cannot be integral values` or
something?
I see you doing that below in the lldb_private code.
================
Comment at: lldb/source/Target/Target.cpp:2546
+ if (target_sp && target_sp->GetLabel() == label) {
+ formatted_label << " " << targets.GetIndexOfTarget(shared_from_this());
+ break;
----------------
nit: I know I'm arguing against this implementation, but in case this does go
in with this implementation, you can probably just use `i` instead of getting
the index of the target again.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151859/new/
https://reviews.llvm.org/D151859
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits