Use memmove to copy overlap memory.
[deliverable/binutils-gdb.git] / gdb / frame-unwind.c
index cdfd045d02f9beed3d3986b3e1b3904a5ba6d753..6f1de9c7bb6982623602f0c482cc7e3243ca5135 100644 (file)
@@ -1,6 +1,7 @@
 /* Definitions for frame unwinder, for GDB, the GNU debugger.
 
-   Copyright (C) 2003, 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010
+   Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -153,8 +154,10 @@ struct value *
 frame_unwind_got_memory (struct frame_info *frame, int regnum, CORE_ADDR addr)
 {
   struct gdbarch *gdbarch = frame_unwind_arch (frame);
+  struct value *v = value_at_lazy (register_type (gdbarch, regnum), addr);
 
-  return value_at_lazy (register_type (gdbarch, regnum), addr);
+  set_value_stack (v, 1);
+  return v;
 }
 
 /* Return a value which indicates that FRAME's saved version of
@@ -165,11 +168,12 @@ frame_unwind_got_constant (struct frame_info *frame, int regnum,
                           ULONGEST val)
 {
   struct gdbarch *gdbarch = frame_unwind_arch (frame);
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   struct value *reg_val;
 
   reg_val = value_zero (register_type (gdbarch, regnum), not_lval);
   store_unsigned_integer (value_contents_writeable (reg_val),
-                         register_size (gdbarch, regnum), val);
+                         register_size (gdbarch, regnum), byte_order, val);
   return reg_val;
 }
 
This page took 0.023519 seconds and 4 git commands to generate.