Example (part 1 of 2)

254.gap, integer.c, (from SPEC CPU2000)

for((k=SIZE(hdR)/4*sizeof(TypDigit)); k != 0; --k) {
c = L * *r++ + (c>>16); *p++ = c;
c = L * *r++ + (c>>16); *p++ = c;
c = L * *r++ + (c>>16); *p++ = c;
c = L * *r++ + (c>>16); *p++ = c;
}

  • r passed in as formal parameter
  • p is dynamically allocated

Are *r and *p independent? Should we disambiguate?