https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80756

--- Comment #1 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> ---
The cause seems to be that the functions are builtins:

$ gcc-snapshot -std=c99 -c tst-cst.c
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);
                     ^~~

But I think that this is wrong. The use of -std=c99 shouldn't allow builtin
functions when they would give a different result (and even without -std=c99,
as this would be confusing). On this point, Clang has the same issue.

Reply via email to