Simplify power of two test

Alan Modra amodra@gmail.com
Tue Oct 15 06:14:00 GMT 2019


	* bfd.c (bfd_check_compression_header): Check for powers of two
	with x == (x & -x).

diff --git a/bfd/bfd.c b/bfd/bfd.c
index af2c192260..b3078eaa52 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -2635,7 +2635,7 @@ bfd_check_compression_header (bfd *abfd, bfd_byte *contents,
 	  chdr.ch_addralign = bfd_get_64 (abfd, &echdr->ch_addralign);
 	}
       if (chdr.ch_type == ELFCOMPRESS_ZLIB
-	  && chdr.ch_addralign == (1U << bfd_log2 (chdr.ch_addralign)))
+	  && chdr.ch_addralign == (chdr.ch_addralign & -chdr.ch_addralign))
 	{
 	  *uncompressed_size = chdr.ch_size;
 	  *uncompressed_alignment_power = bfd_log2 (chdr.ch_addralign);

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list