From: Paul Eggert Date: Tue, 6 Jul 2010 23:16:20 +0000 (-0700) Subject: du: avoid spurious warnings with 64-bit gcc -W X-Git-Tag: v8.6~115 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db4df7dda6e209e3e38fe69298624ffe92d392c7;p=thirdparty%2Fcoreutils.git du: avoid spurious warnings with 64-bit gcc -W Problem reported by Jim Meyering in: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6524#74 * gl/lib/di-set.c (di_ent_hash): Rework so that the compiler does not incorrectly warn about shifting by 64-bits in unreachable code. * gl/lib/ino-map.c (ino_hash): Likewise. --- diff --git a/gl/lib/di-set.c b/gl/lib/di-set.c index e0e2b24dd4..ba44bcfff3 100644 --- a/gl/lib/di-set.c +++ b/gl/lib/di-set.c @@ -83,7 +83,7 @@ di_ent_hash (void const *x, size_t table_size) size_t h = dev; int i; for (i = 1; i < sizeof dev / sizeof h + (sizeof dev % sizeof h != 0); i++) - h ^= dev >>= CHAR_BIT * sizeof h; + h ^= dev >> CHAR_BIT * sizeof h * i; return h % table_size; } diff --git a/gl/lib/ino-map.c b/gl/lib/ino-map.c index c86898365c..cc9a131c98 100644 --- a/gl/lib/ino-map.c +++ b/gl/lib/ino-map.c @@ -61,7 +61,7 @@ ino_hash (void const *x, size_t table_size) size_t h = ino; int i; for (i = 1; i < sizeof ino / sizeof h + (sizeof ino % sizeof h != 0); i++) - h ^= ino >>= CHAR_BIT * sizeof h; + h ^= ino >> CHAR_BIT * sizeof h * i; return h % table_size; }