path: root/cddl/contrib/opensolaris/common
diff options
authorKai Wang <kaiw@FreeBSD.org>2014-01-20 01:35:14 +0000
committerKai Wang <kaiw@FreeBSD.org>2014-01-20 01:35:14 +0000
commitd32f01493934979c77f54c1179e9cd1f8d3fcf6a (patch)
tree0161ffedd29f7d6a703f7ef5caf630097481c8fc /cddl/contrib/opensolaris/common
parente3fa6e64ee1ed08584667538818259a36147041f (diff)
Clang 3.4 will sometimes emit DIE for struct/union member before
emitting the DIE for the type of that member. ctfconvert can not handle this properly and will calculate a wrong member bit offset. Same struct/union type from different .o file will be treated as different types when their member bit offsets are different, and gets added/merged multiple times. This will in turn cause many other structs/pointers/typedefs that refer to the duplicated struct/union gets added/merged multiple times and eventually causes numerous duplicated CTF types in the kernel.debug file. The simple workaround here is to make use of DW_AT_byte_size attribute of the member DIE to calculate the bits occupied by the member's type, without actually resolving the type.
Notes: svn path=/projects/elftoolchain/; revision=260897
Diffstat (limited to 'cddl/contrib/opensolaris/common')
0 files changed, 0 insertions, 0 deletions