← Commit list

032bf6553

Denys Vlasenko
Denys Vlasenko
2010-01-18
FAILED Duration: 35s

Subject

diff: defeat gcc's optimization

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/diff.c+4 -1
@@ -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) {