Optimizer kills loops dependant on variable

Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3907

Reported by Marcus Agehall agehall@roxen.com

The following program exits at once in a recent Pike 7.7 CVS:

int run = 1;

void gmain() {

  while(run);

  exit(0);
}

Thread.Thread t;

int main(int argc, array(string) argv) {
  t = Thread(gmain);

  return -1;
}