I was reading about type conversions and I heard that some compilers cannot detect an undefined behavior, such as assign an out-of-range value to an object of signed type, the result would be undefined.
I know that such programs are said to be "nonportable" and to execute an undefined expression is a error.
What it can cause and why it happens with some compilers/machines?