https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114566
--- Comment #3 from Yuxuan Shui <yshuiv7 at gmail dot com> --- Roughly reduced example: #include <math.h> #include <string.h> #define toOC(n) (log(n)*1.442695f-5.965784f) float *setup_tone_curves(float binHz, float center_decay_rate) { float workc[8][56]; float *ret = NULL; memset(workc, 0, sizeof(workc)); for (int j = 0; j < 8; j++) { for (int k = 0; k < 56; k++) { float adj = k * center_decay_rate; if (adj < 0.) adj = 0.; if (adj > 0.) adj = 0.; workc[j][k] += adj; } } int lo_curve, bin = 0; lo_curve = ceil(toOC(bin * binHz + 1) * 2); return (ret); } int main() { setup_tone_curves(86.1328125, 0.625001); return 0; }