diff --git a/src/link.rs b/src/link.rs index 577ed3d763c9f26ee89c7ded71df669b2bfcb2bb..04b749f7cf664473cf10d5fa40622f71236ddd3c 100644 --- a/src/link.rs +++ b/src/link.rs @@ -67,13 +67,10 @@ fn dump_sections<'s, T: Write>( Ok(output_size) } +/// returns the number of bytes needed to align value +/// on a given align size (must be a power of 2) fn align(value: usize, align: usize) -> usize { - let a = value & (align - 1); - if a == 0 { - 0 - } else { - align - a - } + (value + (align - 1) & !(align - 1)) - value } pub fn link(opts: Opts) -> Result<()> {