https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121411
--- Comment #4 from Martin Pirker <martin.pirker1 at chello dot at> --- Array was a bad example, actually I meant struct or union. bit_size in gcc/dwarf2ctf.cc:gen_ctf_sou_type() should be a 64bit type. Then ctf_add_sou() creates a type info with correct struct or union byte size and member bit offsets. I wonder how libctf was tested. 'objdump --ctf' is also wrong. Finally 'ld' is confused by ctf_lmember_t records. You can check the difference in annotated assembler output by compiling with '-dA -S'.