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

            Bug ID: 33339
           Summary: Wrong member offsets of huge struct or union
           Product: binutils
           Version: 2.45
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libctf
          Assignee: unassigned at sourceware dot org
          Reporter: martin.pirker1 at chello dot at
  Target Milestone: ---

Created attachment 16289
  --> https://sourceware.org/bugzilla/attachment.cgi?id=16289&action=edit
proposed patch

gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121411 exposed a libctf
bug.

member offsets are wrong for large struct or union types.
struct or union size is in bytes, member offsets in bits.

Proposed patch should be combined with a (static) assert
for (CTF_LSIZE_SENT >= CTF_LSTRUCT_THRESH).
Actually CTF_LSIZE_SENT is not a size, it's a marker that
the real size is elsewhere (CTF_TYPE_LSIZE).

Note there are 3 different cases:
1. ctf_stype_t and ctf_member_t for small size
2. ctf_stype_t and ctf_lmember_t if ctt_size >= CTF_LSTRUCT_THRESH
3. ctf_type_t and ctf_lmember_t if ctt_size == CTF_LSIZE_SENT

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

Reply via email to