Different results in optimized programs

Here are some reasons why an optimized program might produce different results from one that has not undergone the optimization process:

Use with caution debugging techniques that rely on examining values in storage. The compiler might have deleted or moved a common expression evaluation. It might have assigned some variables to registers, so that they do not appear in storage at all.