This merge brings the branch up to rev 172662.
There are some LTO failures which are ICEs induced by a new
assertion I added in bp_pack_value. We discussed this in
http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01115.html.
The failure happens when we try to pack DECL_OFFSET_ALIGN. We
only try to pack 8 bits, but in the case of
testsuite/gcc.c-torture/execute/20010904-1.c, DECL_OFFSET_ALIGN
is a very large 64 bit quantity:
typedef struct x { int a; int b; } __attribute__((aligned(32))) X;
#define DECL_OFFSET_ALIGN(NODE) \
(((unsigned HOST_WIDE_INT)1) << FIELD_DECL_CHECK
(NODE)->decl_common.off_align)
Whether correctly or incorrectly, for field 'a',
decl_common.off_align is 0xff. So, DECL_OFFSET_ALIGN is 1 << 0xff
this triggers the assert I added.
Now, this happens during WPA, so I'm suspecting some bad values
being streamed.
Richi, I think it's better if we ICE than if we silently cut
these values short.
Diego.