Introduce value_at_non_lval
authorTom Tromey <tromey@adacore.com>
Fri, 9 Sep 2022 18:50:33 +0000 (12:50 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 3 Jan 2023 15:45:01 +0000 (08:45 -0700)
commit7f22044a6b7ce968aacd8b26f608370940ec158d
tree5e079dae0de1ac5806a5e9d17b01b12f21a296ee
parent43f2b4583f95775b2c0fefd71aab4c773c4f7a7e
Introduce value_at_non_lval

In some cases, while a value might be read from memory, gdb should not
record the value as being equivalent to that memory.

In Ada, the inferior call code will call ada_convert_actual -- and
here, if the argument is already in memory, that address will simply
be reused.  However, for a call like "f(g())", the result of "g" might
be on the stack and thus overwritten by the call to "f".

This patch introduces a new function that is like value_at but that
ensures that the result is non-lvalue.
gdb/valops.c
gdb/value.h