On 19 February 2008 18:23, Paul Koning wrote:
"Dave" == Dave Korn <dave.korn@artimi.com> writes:
Dave> On 19 February 2008 16:30, Sheng-Liang Song wrote:
>> or
>>
>> (len & 1) != 0 <=> (len % 2) != 0
>>
Dave> That would have the advantage of not requiring a divide
Dave> operation :)
It shouldn't matter -- the optimizer will do the right thing, as I
recall.
NB len == signed int.
Yes, it can simplify it to a bunch of shifts and sign extends and masks
without using an explicit divide, but it's not as good as a simple AND
operation. (Maybe VRP in 4.x could handle that by knowing that the result of
strlen has to be >= 0, but 3.x series won't do it).