This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: Check for corruption of cv_type chain
- From: Michael Elizabeth Chastain <mec at shout dot net>
- To: drow at mvista dot com, jimb at redhat dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Fri, 3 May 2002 23:10:19 -0500
- Subject: Re: RFA: Check for corruption of cv_type chain
Jim Blandy writes:
> [goes and checks his compilers] I see what's going on now. In GCC
> 2.96, -g doesn't get you `const' and `volatile' qualifiers in stabs
> --- that's why I thought -gstabs was the default. But in fact, GCC
> 2.96 won't give you those qualifiers no matter how nicely you ask.
Yes, you can see that happening here:
http://www.shout.net/~mec/sunday/2002-05-01/Attention-gdb-HEAD.html
Look at the lines for gdb.base/constvars.exp and gdb.base/volatile.exp.
gcc 2.95.3 -gstabs+ and gcc 2.96 -gstabs+ give many XFAIL's for these
tests.
> The current GCC sources default to Dwarf 2. So except for the
> window between the point where we taught dbxout.c to emit the
> qualifiers, and the point where we made Dwarf 2 the default (a pretty
> narrow window, in terms of installed base, no?), it doesn't matter
> whether -gstabs+ is the default or not; this test won't do its job
> with the default flags.
Two comments. First, gcc 3.0.4 falls into that window, and it is
the current released compiler. Indeed, every other gcc released in
the past twelve months or so has been a gcc 3.0.X compiler, so it
will have the cv qualifiers and have -gstabs+ as default. The window
is not narrow at all.
Second, the new tests are FAILing with gcc 2.95.3 -gstabs+ and
gcc 2.96-rh -gstabs+, the same way they fail with gcc 3.0.4 -gstabs+
and the other gcc 3-series compilers.
Let me pop open the logs:
# gcc 2.95.3 -gstabs+
(gdb) print var_in_b^M
FAIL: gdb.c++/hang.exp: doesn't overwrite struct type (timeout)
print var_in_hang3^M
FAIL: gdb.c++/hang.exp: doesn't corrupt cv_type chain (timeout)
testcase /berman/fsf/_today_/source/gdb/HEAD/src/gdb/testsuite/gdb.c++/hang.exp
completed in 125 seconds
# gcc 2.96.3 -gstabs+
(gdb) file /berman/fsf/_today_/berman/test/gdb.c++/hang^M
Reading symbols from /berman/fsf/_today_/berman/test/gdb.c++/hang...done.^M
(gdb) print var_in_b^M
FAIL: gdb.c++/hang.exp: doesn't overwrite struct type (timeout)
print var_in_hang3^M
FAIL: gdb.c++/hang.exp: doesn't corrupt cv_type chain (timeout)
testcase /berman/fsf/_today_/source/gdb/HEAD/src/gdb/testsuite/gdb.c++/hang.exp
completed in 126 seconds
The logs, executable files, and so on, are in the tarballs that I posted.
Michael C