typedef /*@abstract@*/ /*@null@*/ char *mstring;

static mstring mstring_createNew (int x) ;

mstring mstring_space1 (void)
{
  mstring m = mstring_createNew (1);

  /* error, since m could be NULL */
  *m = ' '; *(m + 1) = '\0';
  return m;
}

static /*@notnull@*/ mstring mstring_createNewNN (int x) ;

mstring mstring_space2 (void)
{
  mstring m = mstring_createNewNN (1);

  /* no error, because of notnull annotation */
  *m = ' '; *(m + 1) = '\0';
  return m;
}


syntax highlighted by Code2HTML, v. 0.9.1