]> granicus.if.org Git - php/commitdiff
fix unsigned negation
authorAnatol Belski <ab@php.net>
Mon, 15 Sep 2014 09:59:48 +0000 (11:59 +0200)
committerAnatol Belski <ab@php.net>
Mon, 15 Sep 2014 10:58:43 +0000 (12:58 +0200)
Zend/zend_ast.c

index 8c9607fcff1c744ff354711ea9b36dccb31ea1af..9604079a9eb0a55c066faeb13f178115eaf1afab 100644 (file)
@@ -163,7 +163,7 @@ ZEND_API zend_ast *zend_ast_create_list(uint32_t init_children, zend_ast_kind ki
 }
 
 static inline zend_bool is_power_of_two(uint32_t n) {
-       return n == (n & -n);
+       return ((n != 0) && (n == (n & (~n + 1))));
 }
 
 ZEND_API zend_ast *zend_ast_list_add(zend_ast *ast, zend_ast *op) {