This is the mail archive of the gdb@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]

Another "ptype B" validity question


I'm seeing some new output from the "ptype" command when I use a new
version of the compiler.

Here are some gdb.log excerpts.

The first excerpt is fine:

  # gdb HEAD, gcc 3.2.1, binutils 2.13.1, stabs+
  ptype class B
  type = class B : public A {
    public:
      int b;
      int x;
  
      B & operator=(B const&);
      B(B const&);
      B();
  }
  (gdb) PASS: gdb.c++/classes.exp: ptype class B

The second excerpt raises an issue:

  # gdb HEAD, gcc HEAD, binutils 2.13.1, stabs+
  ptype class B
  type = class B : public A {
    public:
      A;
      int b;
      int x;
  
      B & operator=(B const&);
      B(B const&);
      B();
  }
  (gdb) FAIL: gdb.c++/classes.exp: ptype class B

Note the "A" line.  I suppose this is gdb's way of showing the
base class as a data member.

My questions are:

. What should gdb print for this ptype operation?

. If gdb does print the "A;" member, is that acceptable or not?
  Note that this is a slightly different question!

. More generally, what is the long term future of stabs+?

I really need an answer for #2 so that I can decide whether to change
the test script or brandish the FAIL in a bug report.

My view is that the test suite should be liberal about what it accepts
in the output of "ptype" as long as it is somehow correct and does not
mislead human users.  In this case, I think that most C++ programmers
would understand the nature of the "A;" line, so I would like to
change classes.exp to accept it.

Michael C


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