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.