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
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to