| Index: gdb/gnulib/import/stdbool.in.h
|
| diff --git a/gdb/gnulib/import/stdbool.in.h b/gdb/gnulib/import/stdbool.in.h
|
| index ed1f9aa488b1329a039aad50df316dc24d3a5653..1f8caee4f2d3caf17861410313d2653a1f42da4d 100644
|
| --- a/gdb/gnulib/import/stdbool.in.h
|
| +++ b/gdb/gnulib/import/stdbool.in.h
|
| @@ -66,24 +66,19 @@
|
| # undef true
|
| #endif
|
|
|
| -/* For the sake of symbolic names in gdb, we define true and false as
|
| - enum constants, not only as macros.
|
| - It is tempting to write
|
| - typedef enum { false = 0, true = 1 } _Bool;
|
| - so that gdb prints values of type 'bool' symbolically. But if we do
|
| - this, values of type '_Bool' may promote to 'int' or 'unsigned int'
|
| - (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
|
| - (see ISO C 99 6.3.1.1.(2)). So we add a negative value to the
|
| - enum; this ensures that '_Bool' promotes to 'int'. */
|
| -#if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
|
| +#ifdef __cplusplus
|
| +# define _Bool bool
|
| +# define bool bool
|
| +#else
|
| +# if defined __BEOS__ && !defined __HAIKU__
|
| /* A compiler known to have 'bool'. */
|
| /* If the compiler already has both 'bool' and '_Bool', we can assume they
|
| are the same types. */
|
| -# if !@HAVE__BOOL@
|
| +# if !@HAVE__BOOL@
|
| typedef bool _Bool;
|
| -# endif
|
| -#else
|
| -# if !defined __GNUC__
|
| +# endif
|
| +# else
|
| +# if !defined __GNUC__
|
| /* If @HAVE__BOOL@:
|
| Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
|
| the built-in _Bool type is used. See
|
| @@ -103,19 +98,35 @@ typedef bool _Bool;
|
| "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
|
| The only benefit of the enum, debuggability, is not important
|
| with these compilers. So use 'signed char' and no enum. */
|
| -# define _Bool signed char
|
| -# else
|
| +# define _Bool signed char
|
| +# else
|
| /* With this compiler, trust the _Bool type if the compiler has it. */
|
| -# if !@HAVE__BOOL@
|
| +# if !@HAVE__BOOL@
|
| + /* For the sake of symbolic names in gdb, define true and false as
|
| + enum constants, not only as macros.
|
| + It is tempting to write
|
| + typedef enum { false = 0, true = 1 } _Bool;
|
| + so that gdb prints values of type 'bool' symbolically. But then
|
| + values of type '_Bool' might promote to 'int' or 'unsigned int'
|
| + (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
|
| + (see ISO C 99 6.3.1.1.(2)). So add a negative value to the
|
| + enum; this ensures that '_Bool' promotes to 'int'. */
|
| typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
|
| +# endif
|
| # endif
|
| # endif
|
| +# define bool _Bool
|
| #endif
|
| -#define bool _Bool
|
|
|
| /* The other macros must be usable in preprocessor directives. */
|
| -#define false 0
|
| -#define true 1
|
| +#ifdef __cplusplus
|
| +# define false false
|
| +# define true true
|
| +#else
|
| +# define false 0
|
| +# define true 1
|
| +#endif
|
| +
|
| #define __bool_true_false_are_defined 1
|
|
|
| #endif /* _GL_STDBOOL_H */
|
|
|