1 /* { dg-do compile } */
2 /* { dg-options "-Wno-attributes" } */
3 
4 #if (__SIZEOF_INT__ <= 2)
5 typedef unsigned long hashval_t;
6 #else
7 typedef unsigned int hashval_t;
8 #endif
9 static hashval_t __attribute__((always_inline))
iterative_hash_host_wide_int(long val,hashval_t val2)10 iterative_hash_host_wide_int (long val, hashval_t val2)
11 {
12   hashval_t a = (hashval_t) val;
13   int zero = 0;
14   hashval_t b = (hashval_t) (val >> (sizeof (hashval_t) * 8 + zero));
15 
16   a -= b; a -= val2; a ^= (val2>>13);
17   b -= val2; b -= a; b ^= (a<< 8);
18   val2 -= a; val2 -= b; val2 ^= ((b&0xffffffff)>>13);
19   a -= b; a -= val2; a ^= ((val2&0xffffffff)>>12);
20   b -= val2; b -= a; b = (b ^ (a<<16)) & 0xffffffff;
21   val2 -= a; val2 -= b; val2 = (val2 ^ (b>> 5)) & 0xffffffff;
22   a -= b; a -= val2; a = (a ^ (val2>> 3)) & 0xffffffff;
23   b -= val2; b -= a; b = (b ^ (a<<10)) & 0xffffffff;
24   val2 -= a; val2 -= b; val2 = (val2 ^ (b>>15)) & 0xffffffff;
25   return val2;
26 }
27 
28 hashval_t
bla(int nunits,int mode)29 bla (int nunits, int mode)
30 {
31   hashval_t hashcode = 0;
32 
33 
34   hashcode = iterative_hash_host_wide_int (14, hashcode);
35   hashcode = iterative_hash_host_wide_int (nunits, hashcode);
36   hashcode = iterative_hash_host_wide_int (mode, hashcode);
37   if (nunits)
38     return 0;
39   else
40     return hashcode;
41 }
42