This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] regcache.c (register_size): Check for REGISTER_RAW_SIZE_P
- From: Corinna Vinschen <vinschen at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Wed, 9 Jul 2003 16:14:17 +0200
- Subject: [RFA] regcache.c (register_size): Check for REGISTER_RAW_SIZE_P
- Reply-to: gdb-patches at sources dot redhat dot com
Hi,
according to my confused mail on the gdb list
(http://sources.redhat.com/ml/gdb/2003-07/msg00091.html)
I think register_size() in regcache.c needs a patch. First of all,
it calls the very same gdb_assert() call twice. The second reason
is that REGISTER_RAW_SIZE() is called in this assertion unconditionally.
This collides with the attempts to get rid of deprecated calls.
A target which already removed the call is so unable to call register_size
w/o failing in gdbarch_deprecated_register_raw_size().
Therefore I suggest testing for REGISTER_RAW_SIZE_P first. Does that
makes sense?
Corinna
* regcache.c (register_size): Remove second call to gdb_assert.
Only call assertion if REGISTER_RAW_SIZE is implemented for
this target.
Index: regcache.c
===================================================================
RCS file: /cvs/src/src/gdb/regcache.c,v
retrieving revision 1.89
diff -u -p -r1.89 regcache.c
--- regcache.c 3 Jul 2003 14:34:29 -0000 1.89
+++ regcache.c 9 Jul 2003 14:01:37 -0000
@@ -290,8 +290,8 @@ register_size (struct gdbarch *gdbarch,
int size;
gdb_assert (regnum >= 0 && regnum < (NUM_REGS + NUM_PSEUDO_REGS));
size = descr->sizeof_register[regnum];
- gdb_assert (size == REGISTER_RAW_SIZE (regnum)); /* OK */
- gdb_assert (size == REGISTER_RAW_SIZE (regnum)); /* OK */
+ if (REGISTER_RAW_SIZE_P ())
+ gdb_assert (size == REGISTER_RAW_SIZE (regnum)); /* OK */
return size;
}
--
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.
mailto:vinschen@redhat.com