Use stdbool.h
authorAlan Modra <amodra@gmail.com>
Tue, 30 Mar 2021 23:49:10 +0000 (10:19 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 31 Mar 2021 00:19:23 +0000 (10:49 +1030)
With this in place we can retire bfd_boolean one project at a time.

bfd/
* bfd-in.h: Include stdbool.h.
(bfd_boolean): Define as bool
* bfd-in2.h: Regenerate.

bfd/ChangeLog
bfd/bfd-in.h
bfd/bfd-in2.h

index 58ddab03c02e47e821d6a54514d9660d9f5b01b4..8b7e53e1ad3d89a775430edc16721adb3757189a 100644 (file)
@@ -1,3 +1,9 @@
+2021-03-31  Alan Modra  <amodra@gmail.com>
+
+       * bfd-in.h: Include stdbool.h.
+       (bfd_boolean): Define as bool
+       * bfd-in2.h: Regenerate.
+
 2021-03-31  Alan Modra  <amodra@gmail.com>
 
        * .gitignore: Delete bfd_stdint.h entry.
index 46a0fcd441744b189630d2b2c9925970f7a1d80f..88f1e867a64dda7aa684ea9d1378f9c855d30c50 100644 (file)
@@ -35,6 +35,7 @@ extern "C" {
 #include "ansidecl.h"
 #include "symcat.h"
 #include <stdint.h>
+#include <stdbool.h>
 #include "diagnostics.h"
 #include <stdarg.h>
 #include <string.h>
@@ -114,20 +115,19 @@ typedef BFD_HOSTPTR_T bfd_hostptr_t;
 /* Forward declaration.  */
 typedef struct bfd bfd;
 
-/* Boolean type used in bfd.  Too many systems define their own
-   versions of "boolean" for us to safely typedef a "boolean" of
-   our own.  Using an enum for "bfd_boolean" has its own set of
-   problems, with strange looking casts required to avoid warnings
-   on some older compilers.  Thus we just use an int.
-
+/* Boolean type used in bfd.
    General rule: Functions which are bfd_boolean return TRUE on
    success and FALSE on failure (unless they're a predicate).  */
 
-typedef int bfd_boolean;
-#undef FALSE
-#undef TRUE
-#define FALSE 0
-#define TRUE 1
+#ifdef POISON_BFD_BOOLEAN
+# pragma GCC poison bfd_boolean FALSE TRUE
+#else
+# define bfd_boolean bool
+# undef FALSE
+# undef TRUE
+# define FALSE 0
+# define TRUE 1
+#endif
 
 #ifdef BFD64
 
index 92af6ca8af23522801586f1b148c287900db75a5..9fbde9d95c5beaa81fd4b99218ffdb6dc3228e9e 100644 (file)
@@ -42,6 +42,7 @@ extern "C" {
 #include "ansidecl.h"
 #include "symcat.h"
 #include <stdint.h>
+#include <stdbool.h>
 #include "diagnostics.h"
 #include <stdarg.h>
 #include <string.h>
@@ -121,20 +122,19 @@ typedef BFD_HOSTPTR_T bfd_hostptr_t;
 /* Forward declaration.  */
 typedef struct bfd bfd;
 
-/* Boolean type used in bfd.  Too many systems define their own
-   versions of "boolean" for us to safely typedef a "boolean" of
-   our own.  Using an enum for "bfd_boolean" has its own set of
-   problems, with strange looking casts required to avoid warnings
-   on some older compilers.  Thus we just use an int.
-
+/* Boolean type used in bfd.
    General rule: Functions which are bfd_boolean return TRUE on
    success and FALSE on failure (unless they're a predicate).  */
 
-typedef int bfd_boolean;
-#undef FALSE
-#undef TRUE
-#define FALSE 0
-#define TRUE 1
+#ifdef POISON_BFD_BOOLEAN
+# pragma GCC poison bfd_boolean FALSE TRUE
+#else
+# define bfd_boolean bool
+# undef FALSE
+# undef TRUE
+# define FALSE 0
+# define TRUE 1
+#endif
 
 #ifdef BFD64