<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sat, 5 Jan 2019 at 23:35, Jonny Grant via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 04/01/2019 21:50, JF Bastien wrote:<br>>> On Jan 4, 2019, at 1:47 PM, Jonny Grant <<a href="mailto:jg@jguk.org" target="_blank">jg@jguk.org</a> <br>
>> <mailto:<a href="mailto:jg@jguk.org" target="_blank">jg@jguk.org</a>>> wrote:<br>
>><br>
>> Hi! Sounds great<br>
>> How about setting uninitialised variables to 0xdeadbeef or 0xabbaabba <br>
>> so its easily identifiable when they crop up in use?<br>
>> We used to clear buffers to 0x11111111 and stack to 0x22222222 I recall<br>
> <br>
> This isn’t relevant to the Annex K discussion, let’s keep this thread <br>
> focused. We discussed initialization values in the original thread as <br>
> well as the code review, it’s worth reading through that to see why I <br>
> chose the values I did (mainly so pointers are invalid, and they’re <br>
> repeated byte-values so the code generation is better).<br>
<br>
OK.<br>
<br>
BTW, I don't think Clang has its own libc does it? Could the other Annex <br>
K be added in a libc.<br></blockquote><div><br></div><div>Yes, a libc implementation can certainly implement Annex K (or at least the non-freestanding parts of it) itself. It would also be feasible for a third-party library to provide an implementation of Annex K, and to interject wrapper headers between user code and the underlying libc providing the extra symbols.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Or at a push, in Clang's libc++ (I know it is meant to be C11 standard, <br>
not C++, but C++ usually includes C functions anyway)<br></blockquote><div><br></div><div>While C++ includes most of the C standard library, it excludes these parts; even if libc++ chose to provide an implementation of the functions inherited from C, it should still not include these ones.</div></div></div>