[10][12][26]
Jsem si vcelku jist, ze nedefinovanost se ty tyka pouze signed aritmetiky, preteceni v unsigned aritmetice je definovano minimalne od C99.
Co se tyce realnych optimalizaci v kompilatorech, tak tohle pokud vim dela GCC pri optimalizaci O2 a vyssi. Ma navic volbu -fno-strict-overflow umoznujici toto chovani vypnout pro kompilaci programu, ktere pocitaji se signed overflow. To pouziva napr. Linux kernel.