On 7/21/25 12:41 AM, Stephen Rothwell wrote:
> Hi all,
> 
> Changes since 20250718:
> 

on i386 (i.e., 32-bit):

In file included from ../include/linux/bits.h:5,
                 from ../include/linux/string_helpers.h:5,
                 from ../include/linux/seq_file.h:7,
                 from ../fs/erofs/super.c:8:
../fs/erofs/internal.h: In function 'erofs_inode_in_metabox':
../include/vdso/bits.h:7:40: warning: left shift count >= width of type 
[-Wshift-count-overflow]
    7 | #define BIT(nr)                 (UL(1) << (nr))
      |                                        ^~
../fs/erofs/internal.h:305:38: note: in expansion of macro 'BIT'
  305 |         return EROFS_I(inode)->nid & BIT(EROFS_DIRENT_NID_METABOX_BIT);
      |                                      ^~~


Only super.c is shown here, but the warnings happen any time that the macro:
#define EROFS_DIRENT_NID_METABOX_BIT    63
is used (on 32-bit), all (or mostly) from internal.h erofs_nid_to_ino64():
        return ((nid << 1) & GENMASK_ULL(63, 32)) | (nid & GENMASK(30, 0)) |
                ((nid >> EROFS_DIRENT_NID_METABOX_BIT) << 31);


-- 
~Randy


Reply via email to