aboutsummaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c15
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.