This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Replace char * with something sensible
Date: Tue, 3 May 2005 15:58:15 -0400
From: Daniel Jacobowitz <drow@false.org>
On Tue, May 03, 2005 at 10:51:02PM +0300, Eli Zaretskii wrote:
> Rumor has it that latest versions of GCC whine about mixing "char *"
> and "unsigned char *". To fix that, Andrew committed some patches
> that replace these with a "bfd_byte *", but I think we should not use
> BFD data types in GDB unless they refer to data structures returned by
> functions from the BFD library.
>
> Possible solutions:
>
> . use "void *" (suggested by Mark Kettenis).
>
> . define a new data type gdb_byte and use "gdb_byte *".
>
> I think Mark's suggestion should be considered first, since it avoids
> the pain of introducing yet another custom data type.
I am marginally in favor of gdb_byte. What pain would it cause,
besides a huge sed for the existing bfd_byte cases?
I hope my (somewhat lengthy) post can change your mind ;-).
These are byte-oriented buffers, so using a type where we can perform
byte-oriented arithmetic without superfluous casts seems like a good
choice to me. Converting to void * (and not using the GCC extension
which allows arithmetic on void *) would be a painful process.
We have -Wpointer-arith in our standard warning flags so there's no
risk in us using that darn GCC extension.
It's not as if non-8-bit-byte support is anywhere on our horizon.
And it is probably completely irrelevant for this discussion.
Mark