From a7960f5680ae1cf5a5be56bd80c0a748ce4a937e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 3 Aug 2003 07:12:50 +0000 Subject: [PATCH] (_Bool): Make it signed char instead of an enum type. --- lib/stdbool_.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/stdbool_.h b/lib/stdbool_.h index 69f6ef725f..0334cd9fcf 100644 --- a/lib/stdbool_.h +++ b/lib/stdbool_.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2002 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify @@ -29,10 +29,14 @@ # undef true #endif -/* For the sake of symbolic names in gdb, define _Bool as an enum type. */ +/* For the sake of symbolic names in gdb, define true and false as + enum constants. However, do not define _Bool as the enum type, + since the enum type might be compatible with unsigned int, whereas + _Bool must promote to int. */ #ifndef __cplusplus # if !@HAVE__BOOL@ -typedef enum { false = 0, true = 1 } _Bool; +enum { false = 0, true = 1 }; +typedef signed char _Bool; # endif #else typedef bool _Bool; -- 2.30.2