aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/dwarf2read.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b20f0e9..296dbc0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2004-01-26 Andrew Cagney <cagney@redhat.com>
+
+ * dwarf2read.c (read_func_scope): Document frame-base hack.
+
2004-01-25 Mark Kettenis <kettenis@gnu.org>
* infcmd.c (print_return_value): Plug memory leak; delete
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 2276562..3acbc58 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2211,6 +2211,15 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
it. */
attr = dwarf_attr (die, DW_AT_frame_base);
if (attr)
+ /* FIXME: cagney/2004-01-26: The DW_AT_frame_base's location
+ expression is being recorded directly in the function's symbol
+ and not in a separate frame-base object. I guess this hack is
+ to avoid adding some sort of frame-base adjunct/annex to the
+ function's symbol :-(. The problem with doing this is that it
+ results in a function symbol with a location expression that
+ has nothing to do with the location of the function, ouch! The
+ relationship should be: a function's symbol has-a frame base; a
+ frame-base has-a location expression. */
dwarf2_symbol_mark_computed (attr, new->name, cu);
list_in_scope = &local_symbols;