aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/config/sparc')
-rw-r--r--gdb/config/sparc/tm-sparc.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h
index d4acb9a..a6e5e38 100644
--- a/gdb/config/sparc/tm-sparc.h
+++ b/gdb/config/sparc/tm-sparc.h
@@ -310,13 +310,18 @@ sparc_extract_struct_value_address PARAMS ((char [REGISTER_BYTES]));
If there is a frame below this one, and the frame pointers are
identical, it's a leaf frame and the bottoms are the same also.
- Otherwise the bottom of this frame is the top of the next frame. */
+ Otherwise the bottom of this frame is the top of the next frame.
+
+ The bottom field is misnamed, since it might imply that memory from
+ bottom to frame contains this frame. That need not be true if
+ stack frames are allocated in different segments (e.g. some on a
+ stack, some on a heap in the data segment). */
#define EXTRA_FRAME_INFO FRAME_ADDR bottom;
#define INIT_EXTRA_FRAME_INFO(fromleaf, fci) \
(fci)->bottom = \
((fci)->next ? \
- ((fci)->frame == (fci)->next_frame ? \
+ ((fci)->frame == (fci)->next->frame ? \
(fci)->next->bottom : (fci)->next->frame) : \
read_register (SP_REGNUM));