void print_int(int i) {}

// Don't make assumptions about memory that other code has
// access to

void func(int n) {
  int i, j, k, l;
  l = 20;

  for (i = 0; i < 10000000; i+=1) {
    k = 10;
    k += l;
    k -= 30;
    // k is 0 now
    mutate(&k);
    // k could be anything now, so this isn't dead code
    n += k;
    if (k > 0) {
      n += 1;
    }
  } 

  print_int(n);
}

void mutate(int *n) {
  *n = (*n) + 1;
}

void main(void) {
  func(1);
  func(2);
  func(3);
}
