public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Paul Hilfinger <Hilfinger@adacore.com>
To: gdb@sourceware.org
Subject: print/x on references
Date: Thu, 18 Oct 2007 09:37:00 -0000	[thread overview]
Message-ID: <20071018093736.8076A48CB9C@nile.gnat.com> (raw)


Currently, there is a slight discrepancy in the behavior of formatted print
commands.  Stop the program below in f.  At that point, we see the
following behavior:

    (gdb) p x
    $4 = (Glorp &) @0x8049850: {x = 1, y = 2}
    (gdb) p/x x
    $5 = 0x8049850

Is there any particular reason these two cases shouldn't have the same
behavior?  It seems that printcmd.c:print_formatted is conflating the
cases of C++ pointers and C++ references, and I don't see the justification
for doing so.  True, it's easy enough to kludge around:

    (gdb) p/x *&x

But it is slightly annoying to have to do this.  Admittedly, I'm speaking
more from the Ada camp, where the equivalent kludge is more verbose (and
from the user's point of view, less motivated).

Still, would anyone object if this behavior were to change?

P. Hilfinger

------------------------------------------------------------


#include <iostream>

using namespace std;

struct Glorp {
  int x, y;
};

Glorp z = { 1, 2 };

void f (Glorp& x) {
  cout << x.x << ", " << x.y << endl;
}

main () {
  f(z);
}

             reply	other threads:[~2007-10-18  9:37 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-18  9:37 Paul Hilfinger [this message]
2007-10-18 11:16 ` Daniel Jacobowitz
2007-10-18 16:05   ` Douglas Evans
2007-10-18 16:30     ` Daniel Jacobowitz
2007-10-18 17:03       ` Douglas Evans
2007-10-18 17:10         ` Douglas Evans
2007-10-18 17:11         ` Daniel Jacobowitz
2007-10-18 17:45           ` Douglas Evans
2007-10-18 19:10             ` Paul Hilfinger
2007-10-18 19:21             ` Daniel Jacobowitz
2007-10-18 19:30               ` Paul Hilfinger
2007-10-18 19:39                 ` Daniel Jacobowitz
2007-10-19 21:40               ` Jim Blandy
2007-10-19 22:00                 ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071018093736.8076A48CB9C@nile.gnat.com \
    --to=hilfinger@adacore.com \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).