summaryrefslogtreecommitdiffstats
path: root/contrib/libc++/src
diff options
context:
space:
mode:
authorkaiw <kaiw@FreeBSD.org>2014-01-20 01:35:14 +0000
committerkaiw <kaiw@FreeBSD.org>2014-01-20 01:35:14 +0000
commitcb3a8568bd4e3f2bf20a1c342c6957d1a568a5df (patch)
tree0161ffedd29f7d6a703f7ef5caf630097481c8fc /contrib/libc++/src
parent9ccc946cdb76c29bc6ec126ee139bdc025baf0a3 (diff)
downloadFreeBSD-src-cb3a8568bd4e3f2bf20a1c342c6957d1a568a5df.zip
FreeBSD-src-cb3a8568bd4e3f2bf20a1c342c6957d1a568a5df.tar.gz
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.
Diffstat (limited to 'contrib/libc++/src')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud