handy.h: Parenthesize formal parameters in macro defn
authorKarl Williamson <khw@cpan.org>
Sun, 31 Mar 2019 19:50:09 +0000 (13:50 -0600)
committerKarl Williamson <khw@cpan.org>
Sun, 31 Mar 2019 21:08:28 +0000 (15:08 -0600)
These should be parenthesized to prevent issues when called with an
expression.

handy.h

diff --git a/handy.h b/handy.h
index cb6da9f..edc0107 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -260,7 +260,7 @@ typedef U64TYPE U64;
  * If not, subtracting 1 would leave the uppermost bit set, so the & would
  * yield non-zero */
 #if defined(PERL_CORE) || defined(PERL_EXT)
-#  define isPOWER_OF_2(n) (n && (n & (n-1)) == 0)
+#  define isPOWER_OF_2(n) ((n) && ((n) & ((n)-1)) == 0)
 #endif
 
 /* This is a helper macro to avoid preprocessor issues, replaced by nothing