summaryrefslogtreecommitdiff
path: root/gdb/regcache.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2011-10-11 18:35:25 +0000
committerDavid S. Miller <davem@redhat.com>2011-10-11 18:35:25 +0000
commitd2b093efb38a492f66212ac7b51ca03899f690ff (patch)
tree25ab46b00ecd98cae0ef9a014235d7d46c368e71 /gdb/regcache.c
parent4765340a9bdcf206204fe48f52da0e0c9ac1c598 (diff)
downloadgdb-d2b093efb38a492f66212ac7b51ca03899f690ff.tar.gz
Fix regcache_restore() handling of unavailable regs.
* regcache.c (regcache_restore): Do not write unavailable regs, mark static. * regcache.h (regcache_restore): Remove declaration.
Diffstat (limited to 'gdb/regcache.c')
-rw-r--r--gdb/regcache.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 37092f82551..ea8189e67db 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -331,7 +331,7 @@ regcache_save (struct regcache *dst, regcache_cooked_read_ftype *cooked_read,
}
}
-void
+static void
regcache_restore (struct regcache *dst,
regcache_cooked_read_ftype *cooked_read,
void *cooked_read_context)
@@ -351,9 +351,10 @@ regcache_restore (struct regcache *dst,
{
if (gdbarch_register_reggroup_p (gdbarch, regnum, restore_reggroup))
{
- int valid = cooked_read (cooked_read_context, regnum, buf);
+ enum register_status status;
- if (valid)
+ status = cooked_read (cooked_read_context, regnum, buf);
+ if (status == REG_VALID)
regcache_cooked_write (dst, regnum, buf);
}
}