void malloc();
void free();

int main(int argc, char** bla) {
  if(argc) 
    malloc();

  if(argc) {
    free();
    if(!argc)
      free();
  }
}
      
const ALLOC = 1

function process(v, state) {
  _vars = v
  if (select("malloc")) {
    if(state == ALLOC)
      error("malloc without a free");
    return ALLOC;
  }
  else if(select("free")) {
    if (state == ALLOC)
      return;
    error("free without malloc");
  }
  return state;
}

function path_end(state) {
  if(state == ALLOC)
    error("malloc without a free");
}