NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: toolchain/53081: __BITMAP_* bitops macros broken with gcc 6.4



The following reply was made to PR toolchain/53081; it has been noted by GNATS.

From: christos%zoulas.com@localhost (Christos Zoulas)
To: gnats-bugs%NetBSD.org@localhost, toolchain-manager%netbsd.org@localhost, 
	gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Cc: 
Subject: Re: toolchain/53081: __BITMAP_* bitops macros broken with gcc 6.4
Date: Thu, 8 Mar 2018 15:31:55 -0500

 On Mar 8,  9:30am, martin%NetBSD.org@localhost (martin%NetBSD.org@localhost) wrote:
 -- Subject: toolchain/53081: __BITMAP_* bitops macros broken with gcc 6.4
 
 The fix to change the 1 to 1ul is incomplete:
 
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/bitops.h>
 
 int
 main(void)
 {
         __BITMAP_TYPE(,unsigned long long, 256) bitmap;
 
         // clear the whole bitmap
         __BITMAP_ZERO(&bitmap);
 
         // set a single bit
         __BITMAP_SET(0, &bitmap);
         __BITMAP_SET(63, &bitmap);
 
         // show all bits that are set
         for (size_t i = 0; i < 256; i++) {
                 if (!__BITMAP_ISSET(i, &bitmap))
                         continue;
                 printf("bit %zu is set\n", i);
         }
 
         // dump whole bitmap for examination
         for (size_t i = 0; i < __arraycount(bitmap._b); i++)
                 printf("%zu: %016llx\n", i, bitmap._b[i]);
 
         return 0;
 }
 
 [3:02pm] 1536>cc -m32 bm.c
 [3:02pm] 1537>./a.out 
 bit 0 is set
 bit 32 is set
 0: 0000000000000001
 1: 0000000000000000
 2: 0000000000000000
 3: 0000000000000000
 
 christos
 


Home | Main Index | Thread Index | Old Index