[rfa/6.0] Fix a thinko in dwarf2loc

Daniel Jacobowitz
2003-08-01T19:32:46Z

Any variable with DW_OP_reg* requires a frame to read it - what
symbol_read_needs_frame () really means is "is this variable meaningful when
the program is not running".

This would show up in the testsuite, but GCC doesn't tend to put locals in
registers without optimization or register keywords everywhere. Symptom is
that a watchpoint was not deleted when we left its scope, since we thought
it was global.

OK?

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer

2003-08-01 Daniel Jacobowitz <drow@mvista.com>

* dwarf2loc.c (dwarf2_loc_desc_needs_frame): Variables in a
register do need a frame.

--- gdb-5.3.20030801/gdb/dwarf2loc.c.orig 2003-08-01 14:58:57.000000000 -0400
+++ gdb-5.3.20030801/gdb/dwarf2loc.c 2003-08-01 15:00:05.000000000 -0400
@@ -318,7 +318,7 @@ dwarf2_loc_desc_needs_frame (unsigned ch

free_dwarf_expr_context (ctx);

- return baton.needs_frame;
+ return baton.needs_frame || ctx->in_reg;
}

static void