svn commit: r228878 - head/include

mdf at FreeBSD.org mdf at FreeBSD.org
Fri Dec 30 03:44:04 UTC 2011


On Thu, Dec 29, 2011 at 6:54 PM, Sean C. Farley <scf at freebsd.org> wrote:
> On Sun, 25 Dec 2011, Ed Schouten wrote:
>
>> Author: ed
>> Date: Sun Dec 25 20:15:41 2011
>> New Revision: 228878
>> URL: http://svn.freebsd.org/changeset/base/228878
>>
>> Log:
>>  Remove unneeded guard.
>>
>>  There is no reason why <stdbool.h> needs an include guard. It is already
>>  protected by __bool_true_false_are_defined.
>>
>> Modified:
>>  head/include/stdbool.h
>>
>> Modified: head/include/stdbool.h
>>
>> ==============================================================================
>> --- head/include/stdbool.h      Sun Dec 25 18:15:31 2011        (r228877)
>> +++ head/include/stdbool.h      Sun Dec 25 20:15:41 2011        (r228878)
>> @@ -26,9 +26,6 @@
>>  * $FreeBSD$
>>  */
>>
>> -#ifndef _STDBOOL_H_
>> -#define        _STDBOOL_H_
>> -
>> #ifndef __bool_true_false_are_defined
>> #define __bool_true_false_are_defined   1
>>
>> @@ -44,5 +41,3 @@ typedef       int     _Bool;
>>
>> #endif /* !__cplusplus */
>> #endif /* __bool_true_false_are_defined */
>> -
>> -#endif /* !_STDBOOL_H_ */
>
>
> I just thought of this while reviewing the change:  should
> __bool_true_false_are_defined be set only if __cplusplus is not set?  It
> should be set for C99, but I wonder if it should be set for C++.

My quick googling didn't show anything at all about the C++ standard
and stdbool.h or __bool_true_false_are_defined.  It was probably
originally set because bool, true, and false are all C++ keywords so
certain code that wanted to ifdef on them didn't also need to check
__cplusplus.

> Also, is there a style requirement that the guard for a header file be based
> off of the name of the file?  I did not see anything obvious for this within
> style(9), but I am curious.

I think it's just common use to make sure different headers use a
different include guard, so they only protect their contents, not any
other file's.  The C standard only mentions the symbols bool, true,
false, and __bool_true_false_are_defined in regards to stdbool.h.

Cheers,
matthew


More information about the svn-src-head mailing list