mirror of
https://github.com/golang/go
synced 2024-11-25 22:57:58 -07:00
gopack: work around gcc bug in hash function
Fixes #48. (this time for sure!) R=r, r1 https://golang.org/cl/152088
This commit is contained in:
parent
0c83f23d44
commit
8b95720918
@ -784,9 +784,16 @@ hashstr(char *name)
|
||||
h = 0;
|
||||
for(cp = name; *cp; h += *cp++)
|
||||
h *= 1119;
|
||||
if(h < 0)
|
||||
h = ~h;
|
||||
return h;
|
||||
|
||||
// the code used to say
|
||||
// if(h < 0)
|
||||
// h = ~h;
|
||||
// but on gcc 4.3 with -O2 on some systems,
|
||||
// the if(h < 0) gets compiled away as not possible.
|
||||
// use a mask instead, leaving plenty of bits but
|
||||
// definitely not the sign bit.
|
||||
|
||||
return h & 0xfffffff;
|
||||
}
|
||||
|
||||
int
|
||||
|
Loading…
Reference in New Issue
Block a user