PR 109125 13 regression SIGBUS in m2pim_ldtoa_ldtoa
authorGaius Mulley <gaiusmod2@gmail.com>
Wed, 15 Mar 2023 21:30:33 +0000 (21:30 +0000)
committerGaius Mulley <gaiusmod2@gmail.com>
Wed, 15 Mar 2023 21:30:33 +0000 (21:30 +0000)
This patch fixes more bool int parameter mismatches
found in dtoa and ldtoa.

gcc/m2/ChangeLog:

PR modula2/109125
* gm2-libs-ch/dtoa.cc (dtoa_strtod): Replace int with bool.
* gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Replace int with bool.

libgm2/ChangeLog:

PR modula2/109125
* libm2pim/dtoa.cc (TRUE): Remove.
(FALSE): Remove.  Replace int with bool.
* libm2pim/ldtoa.cc (TRUE): Remove.
(FALSE): Remove.  Replace int with bool.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
gcc/m2/gm2-libs-ch/dtoa.cc
gcc/m2/gm2-libs-ch/ldtoa.cc
libgm2/libm2pim/dtoa.cc
libgm2/libm2pim/ldtoa.cc

index 2aa774d..1966323 100644 (file)
@@ -48,7 +48,7 @@ typedef enum Mode { maxsignicant, decimaldigits } Mode;
    (ndigits may be negative).  */
 
 double
-dtoa_strtod (const char *s, int *error)
+dtoa_strtod (const char *s, bool *error)
 {
   char *endp;
   double d;
@@ -58,7 +58,7 @@ dtoa_strtod (const char *s, int *error)
   if (endp != NULL && (*endp == '\0'))
     *error = (errno != 0);
   else
-    *error = TRUE;
+    *error = true;
   return d;
 }
 
index b1df51b..9d01fa1 100644 (file)
@@ -52,7 +52,7 @@ extern int dtoa_calcsign (char *p, int str_size);
    (ndigits may be negative).  */
 
 long double
-ldtoa_strtold (const char *s, int *error)
+ldtoa_strtold (const char *s, bool *error)
 {
   char *endp;
   long double d;
@@ -67,7 +67,7 @@ ldtoa_strtold (const char *s, int *error)
   if (endp != NULL && (*endp == '\0'))
     *error = (errno != 0);
   else
-    *error = TRUE;
+    *error = true;
   return d;
 }
 
index 18bb079..509027d 100644 (file)
@@ -75,13 +75,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define NULL (void *)0
 #endif
 
-#if !defined(TRUE)
-#define TRUE (1 == 1)
-#endif
-#if !defined(FALSE)
-#define FALSE (1 == 0)
-#endif
-
 #if defined(HAVE_STDLIB_H)
 #if !defined(_ISOC99_SOURCE)
 #define _ISOC99_SOURCE
@@ -110,7 +103,7 @@ typedef enum Mode { maxsignicant, decimaldigits } Mode;
    contain ndigits past the decimal point (ndigits may be negative).  */
 
 extern "C" double
-EXPORT(strtod) (const char *s, int *error)
+EXPORT(strtod) (const char *s, bool *error)
 {
   char *endp;
   double d;
@@ -123,10 +116,10 @@ EXPORT(strtod) (const char *s, int *error)
 #if defined(HAVE_ERRNO_H)
     *error = (errno != 0);
 #else
-    *error = FALSE;
+    *error = false;
 #endif
   else
-    *error = TRUE;
+    *error = true;
   return d;
 }
 
index d1d37f8..50a65e4 100644 (file)
@@ -91,13 +91,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define NULL (void *)0
 #endif
 
-#if !defined(TRUE)
-#define TRUE (1 == 1)
-#endif
-#if !defined(FALSE)
-#define FALSE (1 == 0)
-#endif
-
 #define MAX_FP_DIGITS 500
 
 typedef enum Mode { maxsignicant, decimaldigits } Mode;
@@ -113,7 +106,7 @@ extern "C" int IMPORT(dtoa,calcsign) (char *p, int str_size);
    contain ndigits past the decimal point (ndigits may be negative).  */
 
 extern "C" long double
-EXPORT(strtold) (const char *s, int *error)
+EXPORT(strtold) (const char *s, bool *error)
 {
   char *endp;
   long double d;
@@ -131,10 +124,10 @@ EXPORT(strtold) (const char *s, int *error)
 #if defined(HAVE_ERRNO_H)
     *error = (errno != 0);
 #else
-    *error = FALSE;
+    *error = false;
 #endif
   else
-    *error = TRUE;
+    *error = true;
   return d;
 }