Something like that, except you can do it with templates to make it more type safe. LLVM has "array_lengthof" in STLExtras.h for this (it can be further improved to provide a compile-time constant with some other magic & an outer macro).<br>
<br>Perhaps it would make sense for this function to take an int (&)[2] then, to ensure type safety? (& then the lengthof would work correctly too)<br><div>On Fri Dec 20 2013 at 1:28:41 AM, Evgeniy Stepanov <<a href="mailto:eugeni.stepanov@gmail.com">eugeni.stepanov@gmail.com</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What's arraysize?<br>
If you mean a macro like sizeof(a)/sizeof(*a) - that won't work<br>
because sizeof(sv) in this case is the size of (int*), not the array<br>
itself.<br>
<br>
<br>
On Thu, Dec 19, 2013 at 11:39 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> On Thu, Dec 19, 2013 at 12:57 AM, Evgeniy Stepanov<br>
> <<a href="mailto:eugeni.stepanov@gmail.com" target="_blank">eugeni.stepanov@gmail.com</a>> wrote:<br>
>><br>
>> Author: eugenis<br>
>> Date: Thu Dec 19 02:57:24 2013<br>
>> New Revision: 197665<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=197665&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=197665&view=rev</a><br>
>> Log:<br>
>> Fix -Werror compilation.<br>
>><br>
>> It was broken in r197601.<br>
>><br>
>> Modified:<br>
>>     compiler-rt/trunk/lib/dfsan/<u></u>dfsan_custom.cc<br>
>><br>
>> Modified: compiler-rt/trunk/lib/dfsan/<u></u>dfsan_custom.cc<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/dfsan/dfsan_custom.cc?rev=197665&r1=197664&r2=197665&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/compiler-rt/trunk/lib/<u></u>dfsan/dfsan_custom.cc?rev=<u></u>197665&r1=197664&r2=197665&<u></u>view=diff</a><br>

>><br>
>> ==============================<u></u>==============================<u></u>==================<br>
>> --- compiler-rt/trunk/lib/dfsan/<u></u>dfsan_custom.cc (original)<br>
>> +++ compiler-rt/trunk/lib/dfsan/<u></u>dfsan_custom.cc Thu Dec 19 02:57:24 2013<br>
>> @@ -796,7 +796,7 @@ __dfsw_socketpair(int domain, int type,<br>
>>    int ret = socketpair(domain, type, protocol, sv);<br>
>>    *ret_label = 0;<br>
>>    if (ret == 0) {<br>
>> -    dfsan_set_label(0, sv, sizeof(sv));<br>
>> +    dfsan_set_label(0, sv, sizeof(*sv) * 2);<br>
><br>
><br>
> Should you use arraysize here rather than hardcoding 2?<br>
><br>
>><br>
>>    }<br>
>>    return ret;<br>
>>  }<br>
>><br>
>><br>
>> ______________________________<u></u>_________________<br>
>> llvm-commits mailing list<br>
>> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvm-commits</a><br>
><br>
><br>
</blockquote>