Možná by to chtělo nastudovat floating point?
Třeba `b - b` může být nula, ale může to být taky NaN. Takže za normálních okolností compiler nesmí ten výraz optimalizovat.
Druhý příklad - `a + 0` -> pokud `a` je -0.0, tak výsledek bude 0, takže celkem regulérní způsob jak se zbavit -0 třeba před uložením binární hodnoty...
Existuje hodně případů, kdy je FP kód napsaný tak, že si třeba počítá chybu a tu koriguje. Takto dokáže přemýšlet možná tak 5% lidí, ale pořád je to důležité... No a pak přijde někdo, kdo přidá do flagů -ffast-math, a strašně se pak diví, že se rozbije něco, čemu nerozumí...