Module Name: src Committed By: martin Date: Wed Mar 21 11:10:57 UTC 2018
Modified Files: src/sys/sys [netbsd-7-0]: bitops.h Log Message: Pull up following revision(s) (requested by mrg in ticket #1582): sys/sys/bitops.h: revision 1.12 sys/sys/bitops.h: revision 1.13 sys/sys/bitops.h: revision 1.14 fix sign issues use 1ul for a left shift that may be greater than int sized. noticed by martin. fixes PR#53081. PR/53081: Fix size of the shift to depend on the type of the bitmap so that we get the correct width. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.11.16.1 src/sys/sys/bitops.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/sys/bitops.h diff -u src/sys/sys/bitops.h:1.11 src/sys/sys/bitops.h:1.11.16.1 --- src/sys/sys/bitops.h:1.11 Fri Dec 7 02:27:58 2012 +++ src/sys/sys/bitops.h Wed Mar 21 11:10:57 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: bitops.h,v 1.11 2012/12/07 02:27:58 christos Exp $ */ +/* $NetBSD: bitops.h,v 1.11.16.1 2018/03/21 11:10:57 martin Exp $ */ /*- * Copyright (c) 2007, 2010 The NetBSD Foundation, Inc. @@ -271,8 +271,8 @@ fast_divide32_prepare(uint32_t _div, uin _l = fls32(_div - 1); _mt = (uint64_t)(0x100000000ULL * ((1ULL << _l) - _div)); *_m = (uint32_t)(_mt / _div + 1); - *_s1 = (_l > 1) ? 1 : _l; - *_s2 = (_l == 0) ? 0 : _l - 1; + *_s1 = (_l > 1) ? 1U : (uint8_t)_l; + *_s2 = (_l == 0) ? 0 : (uint8_t)(_l - 1); } /* ARGSUSED */ @@ -304,7 +304,7 @@ fast_remainder32(uint32_t _v, uint32_t _ #define __BITMAP_SIZE(__t, __n) \ (((__n) + (__BITMAP_BITS(__t) - 1)) / __BITMAP_BITS(__t)) #define __BITMAP_BIT(__n, __v) \ - (1 << ((__n) & __BITMAP_MASK(*(__v)->_b))) + ((__typeof__((__v)->_b[0]))1 << ((__n) & __BITMAP_MASK(*(__v)->_b))) #define __BITMAP_WORD(__n, __v) \ ((__n) >> __BITMAP_SHIFT(*(__v)->_b))