(info "(gcc-6) Other Builtins") says __FUNCTION__ is a preprocessor macro, however, cpp info says it’s not. Am I missing something? do most cpp implementation parse C code and implement it as a macro so gcc claims it is while itself interprets it as not being one? Look by yourselves: -- Built-in Function: const char * __builtin_FUNCTION () This function is the equivalent to the preprocessor '__FUNCTION__' macro and returns the function name the invocation of the built-in is in. It is not a bug of gcc but rather of its documentation, I don’t know if here is the right place to ask…
Fixed in GCC 7 by r7-549.