Reasons for different Floating Point Calculation Behaviour after update from VS 2015 Update 3 to VS2015 Update 3 d

Viewed 98

We were recently updating the VS-Version from VS2015 Update 3 to 3d in our project and now see some of our dedicated integrations tests failing. It seems like with the compiler update the behavior for floating point calculations and/or floating point literals changed.

We compared values before and after and they diverge now to an extend large enough to make some checks fail. I checked the release note pages of VS2015 but did not see any relevant change.

To be precise: We changed Compiler/Linker Version from

cl.exe 19.00.24210 / link.exe 14.00.24210.0 to

cl.exe 19.00.24213.1 / link.exe 14.00.24213.1

Is someone aware of any relevant change or bugfix that was made with this compiler update?

1 Answers

UPDATE: We now investigated further and saw that the behaviour in debug mode did not differ between the compiler versions. In debug mode all the values were those as in release mode after the compiler upgrade, so we supposed an issue with optimizations applied in release mode. And, indeed, deactivating SSA-Optimization using following option together with the old compiler yield exactly the values as with the new compiler:

-d2SSAOptimizer-

Therefore we can conclude that both compiler versions behave the same if SSA-Optimization is deactivated and MS applied changes in the SSA-Optimization between the two compiler versions.

Related