http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28865
--- Comment #16 from Alan Modra <amodra at gmail dot com> --- Hi Nick, that patch looks exactly like my first attempt to fix this bug. I forget the details now but I'm fairly certain it wasn't a complete fix, which is why I didn't submit my patch.. Note that the underlying bug here doesn't just cause a wrong .size to be emitted, but wrongly sized initialization data. On -fsection-anchors targets that results in seriously wrong code. Variables following a too-large initializer are located at the wrong address.. See http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00246.html for a patch that makes the assembler complain loudly if gcc emits wrong code.