labath added a comment.

The code looks pretty straight-forward, but I believe the test should be 
asm-based with hardcoded dwarf (if you're feeling adventurous, you can also try 
yaml). My reasons for that are:

- it makes it guarantees (and makes it explicit) the input that is being tested
- the test can run on any platform (if done right -- no launching of processes)
- it enables us to test the error scenario where we fail to read the 
DW_OP_implicit_value data.

I think the simplest way to produce such a test would be to take 
`DW_TAG_variable-DW_AT_const_value.s` and exchange DW_AT_const_value for 
DW_AT_location/DW_FORM_exprloc



================
Comment at: lldb/source/Expression/DWARFExpression.cpp:856-867
+  const uint32_t len = opcodes.GetULEB128(&opcode_offset);
+  const void *data = opcodes.GetData(&opcode_offset, len);
+
+  if (!data) {
+    LLDB_LOG(log, "Evaluate_DW_OP_implicit_value: could not be read data");
+    return false;
+  }
----------------
I'm not sure this function is really complex enough to justify its existence. 
The actual code is pretty short and most of it is just argument lists and 
logging. I don't think the logging is very useful as the caller logs already, 
and the argument lists would go away if this were inlined.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89842/new/

https://reviews.llvm.org/D89842

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to