From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id DA0F83858CDB; Sat, 12 Nov 2022 17:48:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DA0F83858CDB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1668275287; bh=RKUN4zg7uf4omfd2XMJfTHmJ8yBh2mSPS6NTaeJ20Mo=; h=From:To:Subject:Date:From; b=hR44QKzGz7MV7QhShNPBs8ysrGhcfH5X63gZuh3wX1aAlVeq5+nwELDubcUP22Ub5 PCqHZfLMIQTMjAf2GtxM0I7wlbFGhHcgtFcK/73Py+UsQMmATyyvFiO7fWSRl0WvBf IWTY69T/oP7i/jgl6Ag7aEf1iZQCZY0MmWwFn0fI= From: "tromey at sourceware dot org" To: gdb-prs@sourceware.org Subject: [Bug symtab/29779] New: ptype/o versus unions Date: Sat, 12 Nov 2022 17:48:07 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: symtab X-Bugzilla-Version: HEAD X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: tromey at sourceware dot org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29779 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_stat= us : 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. --=20 You are receiving this mail because: You are on the CC list for the bug.=