system.h (bool, [...]): Don't redefine as preprocessor macros in C++.
authorBernardo Innocenti <bernie@develer.com>
Sun, 25 Jul 2004 00:32:22 +0000 (02:32 +0200)
committerBernardo Innocenti <bernie@gcc.gnu.org>
Sun, 25 Jul 2004 00:32:22 +0000 (02:32 +0200)
* system.h (bool, true, false): Don't redefine as preprocessor macros
in C++.

From-SVN: r85135

gcc/ChangeLog
gcc/system.h

index 19dae5dbd0116289fe9c3275a6a277daf2e6b24c..f4c844fa554002c88ca4ea91b6c890f6be5c21cc 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-25  Bernardo Innocenti  <bernie@develer.com>
+
+       * system.h (bool, true, false): Don't redefine as preprocessor macros
+       in C++.
+
 2004-07-24  Roger Sayle  <roger@eyesopen.com>
 
        * expmed.c (init_expmed): A signed modulus by a power of two is
index dfc8b089c7128db74f9caf519c2363b125c37ce0..3411fc434913984c54a7d15c63347bc599b7dabc 100644 (file)
@@ -505,18 +505,28 @@ extern int snprintf (char *, size_t, const char *, ...);
    and even if it is, it is liable to be buggy.  
    This must be after all inclusion of system headers, as some of
    them will mess us up.  */
-#undef bool
-#undef true
-#undef false
+
 #undef TRUE
 #undef FALSE
 
-#define bool unsigned char
-#define true 1
-#define false 0
+#ifdef __cplusplus
+  /* Obsolete.  */
+# define TRUE true
+# define FALSE false
+#else /* !__cplusplus */
+# undef bool
+# undef true
+# undef false
+
+# define bool unsigned char
+# define true 1
+# define false 0
+
+  /* Obsolete.  */
+# define TRUE true
+# define FALSE false
+#endif /* !__cplusplus */
 
-#define TRUE true
-#define FALSE false
 
 /* Some compilers do not allow the use of unsigned char in bitfields.  */
 #define BOOL_BITFIELD unsigned int