summaryrefslogtreecommitdiffstats
path: root/external/dtoa/coverity.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--external/dtoa/coverity.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/external/dtoa/coverity.patch b/external/dtoa/coverity.patch
new file mode 100644
index 000000000..8fb176531
--- /dev/null
+++ b/external/dtoa/coverity.patch
@@ -0,0 +1,51 @@
+--- dtor/src/dtoa.c.coverity
++++ dtor/src/dtoa.c
+@@ -216,14 +216,14 @@
+ typedef unsigned Long ULong;
+ #endif
+
+-#ifdef DEBUG
+ #include <assert.h>
++
++#ifdef DEBUG
+ #include "stdio.h"
+ #define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);}
+ #define Debug(x) x
+ int dtoa_stats[7]; /* strtod_{64,96,bigcomp},dtoa_{exact,64,96,bigcomp} */
+ #else
+-#define assert(x) /*nothing*/
+ #define Debug(x) /*nothing*/
+ #endif
+
+@@ -2301,6 +2301,7 @@
+ if ((y = d1)) {
+ if ((k = lo0bits(&y))) {
+ x[0] = y | z << (32 - k);
++ assert(k < 32); /* https://bugs.python.org/issue23999 */
+ z >>= k;
+ }
+ else
+@@ -3029,6 +3030,7 @@
+ || ((n = nbits & kmask) !=0
+ && hi0bits(x[k-1]) < 32-n)) {
+ rshift(b,1);
++ /* coverity[dead_error_line] - not worth investigating */
+ if (++e > Emax)
+ goto ovfl;
+ }
+@@ -3345,6 +3347,7 @@
+ if ((dd = s0[j++] - '0' - dig))
+ goto ret;
+ if (!b->x[0] && b->wds == 1) {
++ /* coverity[copy_paste_error : FALSE] */
+ if (i < nd)
+ dd = 1;
+ goto ret;
+@@ -3607,6 +3610,7 @@
+ switch(c = *++s) {
+ case '-':
+ esign = 1;
++ /* fall through */
+ case '+':
+ c = *++s;
+ }