https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80756
--- Comment #2 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- (In reply to Vincent Lefèvre from comment #1) > The cause seems to be that the functions are builtins: > > $ gcc-snapshot -std=c99 -c tst-cst.c [...] Oops, incomplete copy-paste. It should have been: $ gcc-snapshot -std=c99 -c tst-cst.c -fno-builtin tst-cst.c: In function 'f': tst-cst.c:7:21: error: initializer element is not constant static double x = fabs (3.0); ^~~~ tst-cst.c:8:21: error: initializer element is not constant static double y = fma (2.0, 3.0, 4.0); ^~~ tst-cst.c:9:21: error: initializer element is not constant static double z = foo (2.0, 3.0, 4.0); ^~~ Without the -fno-builtin, the diagnostic for fabs() and fma() are missing.