Typically, machine underflow is not caught and the computation generates zero:
Turning on underflow checking leads to a runtime error:
Typically, machine integer overflow is caught and generates a runtime error:
Turning off machine integer overflow checking leads to faster results, which may be incorrect in some cases:
The

setting is used when there is a runtime error:
With no error, the compiled function works as normal:
If there is a runtime error, the function behaves differently:
The default is to evaluate the function symbolically with symbolic arguments:
With
False, the function returns unevaluated:
This evaluates if the symbolic argument is replaced with a number:
Sometimes symbolic evaluation does not give what you intend:
Preventing symbolic evaluation keeps the original intent:
Symbolic evaluation may be slow for expressions that expand out: