more robust integer overflow check
Merge branch '21-int-overflow' into 23-prim-formals