@@ -127,13 +127,18 @@ void MurmurHash3_x86_32 ( const void * key, int len,
127
127
128
128
uint32_t k1 = 0 ;
129
129
130
+ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
131
+ #pragma GCC diagnostic push
132
+ #pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
130
133
switch (len & 3 )
131
134
{
132
135
case 3 : k1 ^= tail [2 ] << 16 ;
133
136
case 2 : k1 ^= tail [1 ] << 8 ;
134
137
case 1 : k1 ^= tail [0 ];
135
138
k1 *= c1 ; k1 = ROTL32 (k1 ,15 ); k1 *= c2 ; h1 ^= k1 ;
136
139
};
140
+ #pragma GCC diagnostic pop
141
+ #endif
137
142
138
143
//----------
139
144
// finalization
@@ -202,6 +207,9 @@ void MurmurHash3_x86_128 ( const void * key, const int len,
202
207
uint32_t k3 = 0 ;
203
208
uint32_t k4 = 0 ;
204
209
210
+ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
211
+ #pragma GCC diagnostic push
212
+ #pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
205
213
switch (len & 15 )
206
214
{
207
215
case 15 : k4 ^= tail [14 ] << 16 ;
@@ -227,6 +235,8 @@ void MurmurHash3_x86_128 ( const void * key, const int len,
227
235
case 1 : k1 ^= tail [ 0 ] << 0 ;
228
236
k1 *= c1 ; k1 = ROTL32 (k1 ,15 ); k1 *= c2 ; h1 ^= k1 ;
229
237
};
238
+ #pragma GCC diagnostic pop
239
+ #endif
230
240
231
241
//----------
232
242
// finalization
@@ -291,6 +301,9 @@ void MurmurHash3_x64_128 ( const void * key, const int len,
291
301
uint64_t k1 = 0 ;
292
302
uint64_t k2 = 0 ;
293
303
304
+ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
305
+ #pragma GCC diagnostic push
306
+ #pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
294
307
switch (len & 15 )
295
308
{
296
309
case 15 : k2 ^= (uint64_t )(tail [14 ]) << 48 ;
@@ -312,6 +325,8 @@ void MurmurHash3_x64_128 ( const void * key, const int len,
312
325
case 1 : k1 ^= (uint64_t )(tail [ 0 ]) << 0 ;
313
326
k1 *= c1 ; k1 = ROTL64 (k1 ,31 ); k1 *= c2 ; h1 ^= k1 ;
314
327
};
328
+ #pragma GCC diagnostic pop
329
+ #endif
315
330
316
331
//----------
317
332
// finalization
0 commit comments