This is the mail archive of the
mailing list for the GDB project.
Re: gdb.c++ failures
On Thu, Jan 10, 2002 at 09:24:44PM +0000, Jason Merrill wrote:
> >>>>> "Daniel" == Daniel Jacobowitz <email@example.com> writes:
> > On Thu, Jan 10, 2002 at 07:21:18PM +0000, Jason Merrill wrote:
> >> The stabs output from gcc ignores const and volatile. There is even a
> >> comment saying that "stabs does not distinguish const and volatile".
> >> The method qualifiers are described, and gdb could do the work to apply
> >> them to the type of 'this', but it's probably fine just to leave it as it
> >> is.
> > There are documented extensions to STABS to express both const and
> > volatile. GDB supports them, and documents them - see info stabs.
> > They're originally Sun extensions.
> > Could I persuade you to add them to GCC? It would take you less time
> > than I.
> Give this a whirl. The output looks right to me, but gdb doesn't seem to
> like it much.
> 2002-01-10 Jason Merrill <firstname.lastname@example.org>
> * dbxout.c (dbxout_type): Support const and volatile.
Of course it doesn't like it. The stabs reader was missing two
important lines - see gdb-patches in a moment.
Only two const/volatile tests seem to fail after this patch. They are:
qux1 (const char cc, const char /*&*/ccr, const char *ccp, char *const cpc)
qux2 (volatile unsigned char vuc, const volatile int cvi,
volatile short /*&*/vsr, volatile long *vlp, float *volatile fpv,
const volatile signed char *const volatile cvscpcv)
The const char cc, const char ccr, volatile unsigned char vuc, and volatile short
vsr all become 'int'. 'const volatile int cvi' comes through OK,
though, so it seems to be a problem of the subrange integer types.
This is definitely GCC's fault and not GDB's - I checked the stabs by
I'd appreciate it if you'd commit this to GCC (although probably not to
the branch - since GDB 5.1 will object strenuously to them).
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer