Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5140BD06.1080905@eservices.virginia.edu>
Date: Wed, 13 Mar 2013 13:53:10 -0400
From: Zvi Gilboa <zg7s@...rvices.virginia.edu>
To: <musl@...ts.openwall.com>
Subject: Re: inttypes.h: possible logical error?

Thank you, Rich, for the quick feedback!  You are of course absolutely 
right...

Best regards,
Zvi





On 03/13/2013 01:23 PM, Rich Felker wrote:
> On Wed, Mar 13, 2013 at 12:26:44PM -0400, Zvi Gilboa wrote:
>> Greetings,
>>
>> In inttypes.h, the first "actual" lines read:
>>
>> ....
>> #include <features.h>
>> #include <stdint.h>
>>
>> #define __NEED_wchar_t
>> #include <bits/alltypes.h>
>> ....
>>
>> As it seems, the idea is to have <bits/alltypes.h> processed with
>> __NEED_wchar_t  already defined.  However, <bits/alltypes.h> is also
>> included by <stdint.h>.
>>
>> In a way this is rather harmless, specifically since
>> <bits/alltypes.h> can be processed more than once, yet wouldn't it
>> be more logical and/or consistent to #define __NEED_wchar_t  prior
>> to including <stdint.h>?  Given no conflicting considerations, the
>> above code snippet would then read:
>>
>> ....
>> #define __NEED_wchar_t
>>
>> #include <features.h>
>> #include <stdint.h>
>> #include <bits/alltypes.h> /* possibly redundant?  see stdint.h */
>> ....
>>
>> Thanks in advance for any and all feedback!
> I wouldn't call it an error. It's a suboptimality, but the tradeoff is
> that one header (inttypes.h) is not making assumptions about the
> implementation of the other. If others want to see this changed to
> save an #include, we could consider it, but it would need to be
> commented that the optimization depends on the implementation of
> stdint.h.
>
> Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.