extern void /*@alt char * @*/
mystrncpy (/*@unique@*/ /*@out@*/ /*@returned@*/ char *s1, char *s2,
size_t n)
/*@modifies *s1@*/ /*@requires MaxSet(s1) >= ( n - 1) /\ MaxRead (s2) >= ( n - 1 ); @*/ /*@ensures MaxRead (s1) ==
MaxRead (s2) /\ MaxRead (s1) <= n; @*/;
void f(char *z) /*@requires MaxRead(z) >= 2; @*/
{
char x[3];
char y[3];
mystrncpy (x, z, 3);
mystrncpy (y, z, 3);
x[(sizeof x)] = 'i';
y[((sizeof y) - 1)] = '0';
}