svn commit: r228878 - head/include
Sean C. Farley
scf at FreeBSD.org
Fri Dec 30 16:52:23 UTC 2011
On Thu, 29 Dec 2011, mdf at FreeBSD.org wrote:
> 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.
I did not find anything definitive either.
>> 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.
Thank you. I asked since I have only really noticed filename-based
guards in the tree although not all are this way (i.e., bsdxml.h uses
Expat_INCLUDED).
Sean
--
scf at FreeBSD.org
More information about the svn-src-head
mailing list