то есть одного рестрикта должно быть достаточно
By adding this type qualifier, a programmer hints to the compiler that for the lifetime of the pointer, only the pointer itself or a value directly derived from it (such as pointer + 1) will be used to access the object to which it points.
test(ptr, ptr + 1, 100) в принципе удовлетворяет одному рестрикту, но делать memcpy там нельзя