dblaikie added a comment.

@vsk (assuming you're the original author of this test - couldn't quite figure 
out the revision history, sorry) - could you check if some of this could be 
simplified a bit to make it more clear what's being tested/what's "interesting" 
here? (I've provided some inline comments to specifics)



================
Comment at: 
lldb/test/API/functionalities/param_entry_vals/basic_entry_values/main.cpp:26-28
 void func2(int &sink, int x) {
-  use(x);
-
-  // Destroy 'x' in the current frame.
-  DESTROY_RSI;
-
-  //% self.filecheck("expr x", "main.cpp", "-check-prefix=FUNC2-EXPR-FAIL", 
expect_cmd_failure=True)
-  // FUNC2-EXPR-FAIL: couldn't get the value of variable x: variable not 
available
-
-  ++sink;
-
-  // Destroy 'sink' in the current frame.
-  DESTROY_RBX;
-
-  //% self.filecheck("expr sink", "main.cpp", "-check-prefix=FUNC2-EXPR")
-  // FUNC2-EXPR: ${{.*}} = 2
+  use<int &, int>(sink, x);
+  use<int &, int>(dummy, 0);
----------------
Any idea if/why this test tests the int& again, like func1 did? Rather than 
passing only an int value? (or instead keep this function that tests both int 
and int& in one, and remove the test that only tests int& since that's covered 
here?)


================
Comment at: 
lldb/test/API/functionalities/param_entry_vals/basic_entry_values/main.cpp:47-49
 void func4_amb(int &sink, int x) {
-  use(x);
-
-  // Destroy 'x' in the current frame.
-  DESTROY_RSI;
-
-  //% self.filecheck("expr x", "main.cpp", "-check-prefix=FUNC4-EXPR-FAIL", 
expect_cmd_failure=True)
-  // FUNC4-EXPR-FAIL: couldn't get the value of variable x: variable not 
available
-
-  ++sink;
-
-  // Destroy 'sink' in the current frame.
-  DESTROY_RBX;
-
-  //% self.filecheck("expr sink", "main.cpp", "-check-prefix=FUNC4-EXPR", 
expect_cmd_failure=True)
-  // FUNC4-EXPR: couldn't get the value of variable sink: Could not evaluate 
DW_OP_entry_value.
+  use<int &, int>(sink, x);
+  use<int &, int>(dummy, 0);
----------------
Not sure why the two parameters here are interesting, compared to 1 (and, I'd 
probably prefer just "int", seems simpler)


================
Comment at: 
lldb/test/API/functionalities/param_entry_vals/basic_entry_values/main.cpp:77
   // FUNC7-BT-NEXT: [inlined] func8_inlined
   // FUNC7-BT-NEXT: [inlined] func9_inlined
   // FUNC7-BT-NEXT: func10
----------------
Any idea if 2 inline frames are especially interesting, rather than just 1? If 
so, might be worth explaining why.


================
Comment at: 
lldb/test/API/functionalities/param_entry_vals/basic_entry_values_x86_64/main.cpp:17-18
+  // with other values.
+  use<int &>(sink);
+  use<int &>(dummy);
 
----------------
You can omit the explicit template parameters here - they can be deduced... oh, 
but they'd be deduced as value rather than reference?

I think the test would probably be easier to understand if it only traficked in 
values anyway - what do you think? (just pass ints by value, inspect int 
values, etc) Or is there something interesting about testing int& versus int 
parameters? (I guess maybe the original author thought there was - since func1 
tests the reference case, func2 tests the value case)

You could still omit the template parameter, and wouldn't need a variable 
called "dummy" here, instead writing:
```
use(0);
```
for instance


================
Comment at: 
lldb/test/API/functionalities/param_entry_vals/basic_entry_values_x86_64/main.cpp:20
 
+  ++global;
   //% self.filecheck("image lookup -va $pc", "main.cpp", 
"-check-prefix=FUNC1-DESC")
----------------
Is this here so you can break & observe the entry_value location being used? 
(because, I guess, if you break on "use(dummy)" it'll be before use is called, 
so it'll still be using "use(sink)"'s location... actually, no - even before 
the call to "use(dummy)" (but after, or even during, the call to "use(sink)") 
we would have to rely on the entry_value (because use(sink) might've modified 
the register, so it's no longer representing the 'sink' value)

So I /think/ this "++global" can be removed?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D79491



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

Reply via email to