diff options
| author | Russ Cox <rsc@golang.org> | 2009-11-23 14:23:14 -0800 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2009-11-23 14:23:14 -0800 |
| commit | 8252c828742e57cfe78e3ab7a8e86c181f12a5e9 (patch) | |
| tree | be171a89d43f5861c2eaa6d474a38b192a384040 | |
| parent | 5f294bf929bf019797638f164b23fe98a62b53d9 (diff) | |
| download | golang-8252c828742e57cfe78e3ab7a8e86c181f12a5e9.tar.gz | |
two more if(h<0) that gcc 4.3 -O2 miscompiles
R=r
http://codereview.appspot.com/160044
| -rw-r--r-- | src/cmd/cc/lexbody | 3 | ||||
| -rw-r--r-- | src/libmach/obj.c | 4 |
2 files changed, 2 insertions, 5 deletions
diff --git a/src/cmd/cc/lexbody b/src/cmd/cc/lexbody index f5a250fcf..ba5eda824 100644 --- a/src/cmd/cc/lexbody +++ b/src/cmd/cc/lexbody @@ -226,8 +226,7 @@ lookup(void) for(p=symb; c = *p; p++) h = h+h+h + c; l = (p - symb) + 1; - if(h < 0) - h = ~h; + h &= 0xffffff; h %= NHASH; c = symb[0]; for(s = hash[h]; s != S; s = s->link) { diff --git a/src/libmach/obj.c b/src/libmach/obj.c index aa914e2c7..dacb2ae1f 100644 --- a/src/libmach/obj.c +++ b/src/libmach/obj.c @@ -257,9 +257,7 @@ objlookup(int id, char *name, int type, uint sig) h = *name; for(cp = name+1; *cp; h += *cp++) h *= HASHMUL; - if(h < 0) - h = ~h; - h &= (NHASH-1); + h &= NHASH-1; if (type == 'U' || type == 'b' || islocal(type)) { for(sp = hash[h]; sp; sp = sp->next) if(strcmp(sp->s.name, name) == 0) { |
