public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug symtab/29779] New: ptype/o versus unions
@ 2022-11-12 17:48 tromey at sourceware dot org
  0 siblings, 0 replies; only message in thread
From: tromey at sourceware dot org @ 2022-11-12 17:48 UTC (permalink / raw)
  To: gdb-prs

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.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-11-12 17:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-12 17:48 [Bug symtab/29779] New: ptype/o versus unions tromey at sourceware dot org

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).