Subject: Re: bug#766: 23.0.60; interesting warning during compilation

From: Eli Zaretskii <[email-masked]>
Date: Sat, 23 Aug 2008 17:10:50 +0300

> From: Peter Dyballa <[email-masked]>
> Date: Sat, 23 Aug 2008 11:00:28 +0200
> Cc: 
> 
> The warning from gcc 4.0.1 is:
> 
> 	dired.c:1003: warning: right shift count >= width of type
> 
>        /* To allow inode numbers beyond 32 bits, separate into 2 24-bit
> 	 high parts and a 16-bit bottom part.  */
>        EMACS_INT high_ino = s.st_ino >> 32;
>        EMACS_INT low_ino  = s.st_ino & 0xffffffff;

This happens on any system whose st_ino is 32 bits or less, because
this code needs to cater to systems whose st_ino is wider than 32
bits.

If someone has suggestions how to avoid this warning without making
code ugly and unreadable, and preferably without system-dependent
#ifdef's, I'm all ears.