diff options
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c index e15e037fb..52dc09a7d 100644 --- a/src/util.c +++ b/src/util.c @@ -386,6 +386,16 @@ u8 sqlite3StrIHash(const char *z){ return h; } +/* +** Work around an apparent bug in GCC. +** https://sqlite.org/forum/info/ee7278611394034c +*/ +#ifdef i386 +#pragma GCC push_options +#pragma GCC optimize("float-store") +#endif + + /* Double-Double multiplication. (x[0],x[1]) *= (y,yy) ** ** Reference: @@ -413,6 +423,11 @@ static void dekkerMul2(double *x, double y, double yy){ x[1] += cc; } +/* End of the GCC bug work-around */ +#ifdef i386 +#pragma GCC pop_options +#endif + /* ** The string z[] is an text representation of a real number. ** Convert this string to a double and write it into *pResult. |