diff --git a/src/dired.c b/src/dired.c index be654670e9d..143e9477603 100644 --- a/src/dired.c +++ b/src/dired.c @@ -999,8 +999,10 @@ which see. */) else { /* 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; + high parts and a 16-bit bottom part. + The code on the next line avoids a compiler warning on some + systems (bug#766). */ + EMACS_INT high_ino = s.st_ino >> 31 >> 1; EMACS_INT low_ino = s.st_ino & 0xffffffff; values[10] = Fcons (make_number (high_ino >> 8),