forked from Imagelibrary/binutils-gdb
* frame.c (get_prev_frame_1): Work around GCC bug.
* frame.h: Add comment about GCC bug.
This commit is contained in:
17
gdb/frame.h
17
gdb/frame.h
@@ -310,7 +310,22 @@ extern CORE_ADDR get_frame_base (struct frame_info *);
|
||||
|
||||
/* Return the per-frame unique identifer. Can be used to relocate a
|
||||
frame after a frame cache flush (and other similar operations). If
|
||||
FI is NULL, return the null_frame_id. */
|
||||
FI is NULL, return the null_frame_id.
|
||||
|
||||
NOTE: kettenis/20040508: These functions return a structure. On
|
||||
platforms where structures are returned in static storage (vax,
|
||||
m68k), this may trigger compiler bugs in code like:
|
||||
|
||||
if (frame_id_eq (get_frame_id (l), get_frame_id (r)))
|
||||
|
||||
where the return value from the first get_frame_id (l) gets
|
||||
overwritten by the second get_frame_id (r). Please avoid writing
|
||||
code like this. Use code like:
|
||||
|
||||
struct frame_id id = get_frame_id (l);
|
||||
if (frame_id_eq (id, get_frame_id (r)))
|
||||
|
||||
instead, since that avoids the bug. */
|
||||
extern struct frame_id get_frame_id (struct frame_info *fi);
|
||||
extern struct frame_id frame_unwind_id (struct frame_info *next_frame);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user