$ rpm -q glibc cpp glibc-2.24.90-11.fc26.x86_64 cpp-6.2.1-2.fc26.x86_64 $ cat t.cc #include <math.h> int iszero(); $ cpp t.cc | tail -5 int # 2 "t.cc" 3 4 (((__typeof ()) ()) == 0) # 2 "t.cc" ; A few other macros appear to get expanded as well.
This is an intentional upstream change. It does not seem wise to deviate from upstream, even if the change causes compatibility issues. I have already raised my concerns upstream, independently of this bug. We will have to wait and see what happens.
Patch posted upstream: https://sourceware.org/ml/libc-alpha/2016-10/msg00353.html
The upstream fix will be picked up by the next rawhide import.