*** ../binutils-2.20.51.0.10.orig/bfd/merge.c 2010-08-20 12:19:33.000000000 +0100 --- bfd/merge.c 2010-08-20 12:18:01.000000000 +0100 *************** sec_merge_emit (bfd *abfd, struct sec_me *** 307,312 **** --- 307,315 ---- len = -off & (entry->alignment - 1); if (len != 0) { + /* We should never have an entry with an alignment + greater than the section's alignment. */ + BFD_ASSERT (len <= (bfd_size_type) (1 << alignment_power)); if (bfd_bwrite (pad, len, abfd) != len) goto err; off += len; *************** sec_merge_emit (bfd *abfd, struct sec_me *** 324,329 **** --- 327,333 ---- /* Trailing alignment needed? */ off = sec->size - off; if (off != 0 + && alignment_power && bfd_bwrite (pad, off, abfd) != off) goto err;