diff options
Diffstat (limited to 'external/dtoa/coverity.patch')
-rw-r--r-- | external/dtoa/coverity.patch | 51 |
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; + } |