This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
RE: [RFC] Signed/unsigned character arrays are not strings
- From: <pkoning at equallogic dot com>
- To: <jimb at codesourcery dot com>, <mark dot kettenis at xs4all dot nl>
- Cc: <drow at false dot org>, <eliz at gnu dot org>, <dewar at adacore dot com>, <nickrob at snap dot net dot nz>, <jan dot kratochvil at redhat dot com>, <Mathieu dot Lacage at sophia dot inria dot fr>, <gdb at sourceware dot org>
- Date: Tue, 27 Feb 2007 20:51:54 -0500
- Subject: RE: [RFC] Signed/unsigned character arrays are not strings
> Okay, here's a horrible idea. :) With this patch:
>
> $ cat chars.c
> #include <stdio.h>
> #include <stdint.h>
>
> typedef char byte_t;
>
> char *c = "chars";
> unsigned char *uc = "unsigned chars";
> signed char *sc = "signed chars";
> byte_t *b = "bytes";
> int8_t *i8 = "int8_t's";
> uint8_t *ui8 = "uint8_t's";
Neat.
I would tweak it a little. People might be using typedefs
for character strings that wrap, say, "unsigned char".
So if you're going to do a heuristic on the name, treat
it as a character string if the name ends in "char" (not
necessarily with a preceding space) or "char_t" (because
many people use _t as the suffix for typedef names).
paul