<div dir="ltr">That's good to know!<div><br></div><div>I checked that the problem reproduces on debian wheezy (debian's current stable, a bit less than a year old), but it is fixed on debian sid.</div><div><br></div>
<div>So applications could work around this by doing "mkdir -p hack/linux; touch hack/linux/stddef.h" and then adding "-Ihack" to all their commandlines until this is fixed. Since this is only needed for a limited time (2 years-ish), that seems preferable to me over adding hacks to clang's headers. Any other opinions? If not, I'll drop this patch.</div>
<div><br></div><div><br></div><div>In any case, it's probably a good idea to change stddef.h so that the already-present __need_wint_t behaves like in gcc's version: if that's defined, stddef.h only provides win_t and does nothing else. Should I send a patch for just that?</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 29, 2014 at 7:35 AM, Lubos Lunak <span dir="ltr"><<a href="mailto:l.lunak@centrum.cz" target="_blank">l.lunak@centrum.cz</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Monday 28 of April 2014, Reid Kleckner wrote:<br>
> Even if we commit this workaround, can we report this as a bug to upstream<br>
> Linux?<br>
<br>
</div> Already done (<a href="http://comments.gmane.org/gmane.linux.kernel/1281756" target="_blank">http://comments.gmane.org/gmane.linux.kernel/1281756</a>). And<br>
there's actually no public #define NULL in recent Linux headers.<br>
<div class="HOEnZb"><div class="h5"><br>
> The test case you have shows how this definition of NULL is broken<br>
> on x86_64, even in C with gcc:<br>
><br>
> $ cat t.c<br>
> #define NULL 0<br>
> int printf(const char *, ...);<br>
> int main() {<br>
>   printf("%d %d %d %d %d %d %p\n", 1, 2, 3, 4, 5, 6,<br>
> 0xdeadbeefdeadbeefULL); printf("%d %d %d %d %d %d %p\n", 1, 2, 3, 4, 5, 6,<br>
> NULL);<br>
> }<br>
><br>
> $ gcc -w t.c -o t && ./t<br>
> 1 2 3 4 5 6 0xdeadbeefdeadbeef<br>
> 1 2 3 4 5 6 0xdeadbeef00000000<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
 Lubos Lunak<br>
</font></span></blockquote></div><br></div>