public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Tom Tromey <tom@tromey.com>
To: Pedro Alves <palves@redhat.com>
Cc: Tom Tromey <tom@tromey.com>,  gdb-patches@sourceware.org
Subject: Re: [RFA 2/6] Handle alignof and _Alignof
Date: Tue, 24 Apr 2018 20:23:00 -0000	[thread overview]
Message-ID: <87bme88icb.fsf@tromey.com> (raw)
In-Reply-To: <bed9b13b-1ac2-7b06-d72c-002555c9e4cc@redhat.com> (Pedro Alves's	message of "Tue, 24 Apr 2018 20:17:33 +0100")

>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:

Pedro> Shouldn't we test "long double"?  Patch #1 handles it.
Pedro> Not sure all GCC ports support it, may require separate compilation.

I thought C didn't have long double (it's tested in the C++ test), but I
see it does.  I will add that.

Pedro> Also, I'm wondering about "__int128" if the target
Pedro> supports it.

I have bad feelings about trying to detect this in the test.

Pedro> In C++, do we get the alignment of non-standard layout classes right?
Pedro> Likewise arrays, bitfields and typedefs?
Pedro> What do we do with _Alignof(void)?

I will add these.

Pedro> I didn't spot any test for the
Pedro>  "could not determine alignment of type"
Pedro> case to make that that works gracefully without crashing.  

I think this one is maybe hard to test without some kind of bug (so far
I've only seen it when some part of the patch was buggy), but I will see
what I can do.

Pedro> Finally, for completeness, GCC allows _Alignof applied to
Pedro> expressions, so I guess we should to.  Does the series allow that?
Pedro> I.e., can we do _Alignof(1 + 1)?  Does the parser handle that?

No, and this is hard to do.  I've left the door open a bit by the way
the new expression emits a new OP instead of simply writing out a
constant (and this allows alignof(typeof(..)) to work as well).
However, I think the way the parser is written makes this difficult,
which is one reason that sizeof requires or does not require parens
depending on whether the argument is an expression or a type.

It would be possible to write "alignof expression", but I didn't want to
add an extension, especially since "alignof(typeof(expression))" is
pretty easy.

Pedro> Shouldn't we test _Alignof applied to the structure fields too?

It seems to me that this would necessarily be an expression, not a type.

Pedro> There was a snippet in the patch that made me wonder if the patch
Pedro> handles alignof of a no-debug-info variable and and the return-type
Pedro> of a no-debug-info function correctly (instead of e.g., crashing).
Pedro> I'd be nice to add a couples test to gdb.base/nodebug.exp
Pedro> to make sure.  E.g.:
Pedro>    p _Alignof (dataglobal64_1)
Pedro>    p _Alignof (middle())"

Pedro> Also, please add intro comments to the testcase .exp files, so
Pedro> that later on people can find out what the testcase is
Pedro> about easily.

Ok to all.

Tom

  reply	other threads:[~2018-04-24 20:23 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24 15:22 [RFA 0/6] Teach gdb about type alignment Tom Tromey
2018-04-24 15:22 ` [RFA 2/6] Handle alignof and _Alignof Tom Tromey
2018-04-24 17:04   ` Eli Zaretskii
2018-04-24 19:17   ` Pedro Alves
2018-04-24 20:23     ` Tom Tromey [this message]
2018-04-27 18:02       ` Pedro Alves
2018-04-27 20:53         ` Tom Tromey
2018-04-30 16:46         ` Tom Tromey
2018-04-26 20:45     ` Tom Tromey
2018-04-27 18:05       ` Pedro Alves
2018-04-26 20:54     ` Tom Tromey
2018-04-24 15:22 ` [RFA 3/6] Reindent type_object_getset in py-type.c Tom Tromey
2018-04-24 15:22 ` [RFA 5/6] Remove rust_type_alignment Tom Tromey
2018-04-24 15:22 ` [RFA 6/6] Remove long_long_align_bit gdbarch attribute Tom Tromey
2018-04-24 15:24   ` Tom Tromey
2018-04-24 17:17   ` Anton Kolesov
2018-04-26 20:56     ` Tom Tromey
2018-04-24 15:22 ` [RFA 1/6] Add initial type alignment support Tom Tromey
2018-04-24 19:16   ` Pedro Alves
2018-04-24 20:23     ` Tom Tromey
2018-04-24 15:22 ` [RFA 4/6] Expose type alignment on gdb.Type Tom Tromey
2018-04-24 16:59   ` Eli Zaretskii

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=87bme88icb.fsf@tromey.com \
    --to=tom@tromey.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    /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).