circptr/circindex()'s documentation shall explicitly state that a pointer increment greater than buffer's length is not allowed
or change implementation to allow arbitrary increments.
I use circptr() for buffer accesses replacing "buffer [ index % buffer_length ]" -like constructs.
In the modulo case I am always on the safe side, that means, the reminder cannot be greater than buffer's length and the code works as expected,
even for indexes way over buffer's length (as long as the compiler does not use a buggy circular indexing).
Unfortunately, a direct translation to circptr() is not possible when the increment is over buffer's length.
The workaround I found is to use modulo in circptr as follows: circptr ( pointer, increment % length, base, length ), but this isn't "clean code".
This issue was found the hard way, using VisualDSP++ 5.0 Update 10, Debug build on Win7 64 bit.