I'm having a very fundamental problem with casting integer values to floats. The following line of code is failing
f_val = static_cast<float>(i_val);
Where f_val is a float and i_val is a int16_t
The issue is that the result of the cast is always 0.0 (i.e. f_val is always zero regardless of the value of i_val). I have of course also tried old style (float)i casting and just implicitly casting.
To make things more interesting this was working just fine with compiler versions up to 6.4.6. Have not tested all versions of the compiler but it is failing in 15.12.1, 15.12.3, and 16.9.0.