[cfe-dev] clang and gcc implement __PRETTY_FUNCTION__ differently

Joerg Sonnenberger joerg at britannica.bec.de
Wed Nov 30 20:45:23 PST 2011


On Wed, Nov 30, 2011 at 06:21:04PM -0800, Kostya Serebryany wrote:
> #include <stdio.h>
> template<class T>
> const char *foo() {
>   return __PRETTY_FUNCTION__;
> }
> int main() {
>   printf("%s\n", foo<int>());
> }

This gets more interesting if the template is actually used by the
function. Changing it to foo(T x) and adjusting the call, the result is:

clang:
const char *foo(int)

gcc:
const char* foo(T) [with T = int]

I don't think the GCC output is really better.

Joerg



More information about the cfe-dev mailing list