Module Name: src Committed By: christos Date: Thu Jan 17 19:10:57 UTC 2013
Modified Files: src/external/gpl3/gcc/dist/gcc: dwarf2out.c Log Message: Apply GCC/35998 from FreeBSD http://svnweb.freebsd.org/changeset/base/245024 gcc: avoid generating negative values to DW_AT_byte_size. There is a bug in gcc (GCC/35998) where dwarf reports sizes of unsigned -1 (0xffffffff). On NetBSD this generated a faulty CTF entry which then caused a segfault in ctfmerge. The issue was worked around in NetBSD's Dtrace but since the issue originated in gcc, it seems reasonable to fix it here. Thanks to Christoph Mallon for pointing out a correct fix. To generate a diff of this commit: cvs rdiff -u -r1.1.1.2 -r1.2 src/external/gpl3/gcc/dist/gcc/dwarf2out.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gcc/dist/gcc/dwarf2out.c diff -u src/external/gpl3/gcc/dist/gcc/dwarf2out.c:1.1.1.2 src/external/gpl3/gcc/dist/gcc/dwarf2out.c:1.2 --- src/external/gpl3/gcc/dist/gcc/dwarf2out.c:1.1.1.2 Tue Sep 18 02:12:38 2012 +++ src/external/gpl3/gcc/dist/gcc/dwarf2out.c Thu Jan 17 14:10:56 2013 @@ -16667,9 +16667,9 @@ add_byte_size_attribute (dw_die_ref die, /* Note that `size' might be -1 when we get to this point. If it is, that indicates that the byte size of the entity in question is variable. We - have no good way of expressing this fact in Dwarf at the present time, - so just let the -1 pass on through. */ - add_AT_unsigned (die, DW_AT_byte_size, size); + have no good way of expressing this fact in Dwarf at the present time. + GCC/35998: Avoid passing negative size values to Dtrace and gdb. */ + add_AT_unsigned (die, DW_AT_byte_size, (size != (unsigned)-1 ? size : 0)); } /* For a FIELD_DECL node which represents a bit-field, output an attribute