]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Birdtest: remove warnings about 32 bit shifting
authorPavel Tvrdík <pawel.tvrdik@gmail.com>
Tue, 29 Mar 2016 08:30:33 +0000 (10:30 +0200)
committerPavel Tvrdík <pawel.tvrdik@gmail.com>
Wed, 30 Mar 2016 15:05:13 +0000 (17:05 +0200)
lib/bitops_test.c

index c853e9319dba8006a016a55fe602f451d8f4a821..2a4cfb77beb9f2e01a1a24ccb5f70e34de540c62 100644 (file)
@@ -37,7 +37,7 @@ u32_masklen_expected(u32 mask)
 
   int valid = 0;
   for (j = 0; j <= 32; j++)
-    if (mask == (0xffffffff << (32-j)))
+    if (mask == (j ? (0xffffffff << (32-j)) : 0)) /* Shifting 32-bit value by 32 bits is undefined behaviour */
        valid = 1;
 
   if (!valid && mask != 0)
@@ -72,7 +72,7 @@ t_masklen(void)
   check_mask(0x00000000);
 
   for (i = 0; i <= 32; i++)
-    check_mask(((u32) (0xffffffff << (32-i))) & 0xffffffff);
+    check_mask(((u32) (i ? (0xffffffff << (32-i)) : 0)) & 0xffffffff); /* Shifting 32-bit value by 32 bits is undefined behaviour */
 
   for (i = 0; i <= MAX_NUM; i++)
     check_mask(bt_random());