Date: Sat, 18 Nov 2000 03:50:24 -0500 (EST) From: Donald.J.Maddox@cae88-102-101.sc.rr.com To: FreeBSD-gnats-submit@freebsd.org Subject: misc/22936: <stdbool.h> broken, needs repair Message-ID: <200011180850.eAI8oOt50089@cae88-102-101.sc.rr.com>
next in thread | raw e-mail | index | archive | help
>Number: 22936 >Category: misc >Synopsis: /usr/include/stdbool.h defines _bool twice when included by gcc. >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Nov 18 01:00:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Donald J. Maddox >Release: FreeBSD 5.0-CURRENT i386 >Organization: >Environment: System: FreeBSD cae88-102-101.sc.rr.com 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Wed Nov 15 00:22:26 EST 2000 root@cae88-102-101.sc.rr.com:/usr/src/sys/compile/RHIANNON i386 >Description: The header file <stdbool.h> contains a defective conditional that breaks several ports. Any code that includes <stdbool.h> will break if compiled by gcc... Example: #include <stdbool.h> int main() { return(0); } $ cc test.c In file included from test.c:1: /usr/include/stdbool.h:51: conflicting types for `_Bool' /usr/include/stdbool.h:38: previous declaration of `_Bool' >How-To-Repeat: See above :) >Fix: --- /usr/src/include/stdbool.h Sat Sep 16 03:28:44 2000 +++ stdbool.h.new Sat Nov 18 03:23:55 2000 @@ -31,11 +31,15 @@ #ifndef _STDBOOL_H_ #define _STDBOOL_H_ +#if __STDC_VERSION__ < 199901L +typedef int _Bool; /* not built into pre-C99 compilers */ +#else /* `_Bool' type must promote to `int' or `unsigned int' */ typedef enum { false = 0, true = 1 } _Bool; +#endif /* And those constants must also be available as macros */ #define false false @@ -46,9 +50,5 @@ /* Inform that everything is fine */ #define __bool_true_false_are_defined 1 - -#if __STDC_VERSION__ < 199901L -typedef int _Bool; /* not built into pre-C99 compilers */ -#endif #endif /* _STDBOOL_H_ */ >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200011180850.eAI8oOt50089>