I\'m currently experiencing random floating point errors when compiling for x86 targets using VC++ 11 (CTP Update 1). See the short example \"test.cpp\" bel
/GL
ignores default calling conventions, by design. With LTCG, the compiler/linker knows about the entire call graph so it can match caller and callee. Using an SSE register isn't weird in that context.
I'm not entirely sure what you mean by "get_scaling_factor()
pushes the result on the floating point stack", though. Do you mean that the compiler fails to inline it? I expect the compiler to do so, since the call graph has only one caller. (We know that `get_scaling_factor(targetUnits) was inlined, since that would have caused a division by zero otherwise)
If the compiler indeed fails to inline get_scaling_factor()
, then you've in fact found two bugs: One inlining failure, and one custom calling convention failure.