Hi Dominik, On Thu, Nov 17, 2016 at 04:53:47PM +0100, Dominik Vogt wrote: > +/* A convenience macro to determine whether a SIZE lies inclusively > + within [1, RANGE], POS lies inclusively within between > + [0, RANGE - 1] and the sum lies inclusively within [1, RANGE]. */ > +#define SIZE_POS_IN_RANGE(SIZE, POS, RANGE) \ > + (IN_RANGE (POS, 0, (RANGE) - 1) \ > + && IN_RANGE (SIZE, 1, RANGE) \ > + && IN_RANGE ((SIZE) + (POS), 1, RANGE))
You should put parens around every use of SIZE, POS, RANGE -- there could be a comma operator in the macro argument. You don't check if SIZE+POS overflows / wraps around. If you really don't care about that, you can lose the > + && IN_RANGE (SIZE, 1, RANGE) \ part as well? Segher