/*
** checks read-only strings
*/

char f1 (char *x)
{
  return *x;
}

char f2 (char *x) /*@modifies *x;@*/
{
  *x = 'a';
  return *x;
}

void f3 (/*@only@*/ char *x)
{
  free (x);
}

void main (void)
{
  (void) f1 ("hullo");
  (void) f2 ("hullo");
  f3 ("hullo");
}


syntax highlighted by Code2HTML, v. 0.9.1