Re: [RFC][PATCH] introduce ptr_diff()

Måns Rullgård
2010-08-19T16:18:53Z

David Howells <dhowells@redhat.com> writes:

> Namhyung Kim <namhyung@gmail.com> wrote:
>
>> + if (is_power_of_2(__size)) \
>> + __diff = (__addr1 - __addr2) >> ilog2(__size); \
>> + else \
>> + __diff = (__addr1 - __addr2) / __size; \
>
> You shouldn't need to do this. The compiler's optimiser should switch a
> divide to a shift for a power-of-2 divisor.

Only when the numerator is provably non-negative, which is certainly
not the case here.

--
Måns Rullgård
mans@mansr.com