This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]