public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "tromey at sourceware dot org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug symtab/29779] New: ptype/o versus unions
Date: Sat, 12 Nov 2022 17:48:07 +0000	[thread overview]
Message-ID: <bug-29779-4717@http.sourceware.org/bugzilla/> (raw)

https://sourceware.org/bugzilla/show_bug.cgi?id=29779

            Bug ID: 29779
           Summary: ptype/o versus unions
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: symtab
          Assignee: unassigned at sourceware dot org
          Reporter: tromey at sourceware dot org
  Target Milestone: ---

ptype/o prints strange padding for a union.
You can see this in gdb itself using "ptype/o struct value".
This struct has a union:

/*      8      |      40 */    union {
/*                     8 */        CORE_ADDR address;
/*                    40 */        struct {
/*      8      |       4 */            int regnum;
/* XXX  4-byte hole      */
/*     16      |      32 */            struct frame_id {
/*     16      |       8 */                CORE_ADDR stack_addr;
/*     24      |       8 */                CORE_ADDR code_addr;
/*     32      |       8 */                CORE_ADDR special_addr;
/*     40: 0   |       4 */                frame_id_stack_status stack_status :
3;
/*     40: 3   |       4 */                unsigned int code_addr_p : 1;
/*     40: 4   |       4 */                unsigned int special_addr_p : 1;
/* XXX  3-bit hole       */
/* XXX  3-byte hole      */
/*     44      |       4 */                int artificial_depth;

                                           /* total size (bytes):   32 */
                                       } next_frame_id;

                                       /* total size (bytes):   40 */
                                   } reg;
/*                     8 */        internalvar *internalvar;
/*                     8 */        xmethod_worker *xm_worker;
/*                    16 */        struct {
/*      8      |       8 */            const lval_funcs *funcs;
/*     16      |       8 */            void *closure;

                                       /* total size (bytes):   16 */
                                   } computed;
/* XXX 32-byte padding   */

                                   /* total size (bytes):   40 */
                               } location;


I'm not sure what the "32-byte padding" refers to -- maybe the maximum
padding of all union members?
Anyway it would probably be more useful to see the amount of padding
per-member, and then if the maximum were shown, the comment could
explain that explicitly.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

                 reply	other threads:[~2022-11-12 17:48 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=bug-29779-4717@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@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).