mirror of https://github.com/mirror/busybox.git
diff: defeat gcc's optimization
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>1_16_stable
parent
d4a7728dc3
commit
032bf65533
|
@ -435,7 +435,10 @@ static int *create_J(FILE_and_pos_t ft[2], int nlen[2], off_t *ix[2])
|
|||
tok = read_token(&ft[i], tok);
|
||||
if (!(tok & TOK_EMPTY)) {
|
||||
/* Hash algorithm taken from Robert Sedgewick, Algorithms in C, 3d ed., p 578. */
|
||||
hash = hash * 128 - hash + TOK2CHAR(tok);
|
||||
/*hash = hash * 128 - hash + TOK2CHAR(tok);
|
||||
* gcc insists on optimizing above to "hash * 127 + ...", thus... */
|
||||
unsigned o = hash - TOK2CHAR(tok);
|
||||
hash = hash * 128 - o; /* we want SPEED here */
|
||||
continue;
|
||||
}
|
||||
if (nlen[i]++ == sz) {
|
||||
|
|
Loading…
Reference in New Issue