Технически поведение не определено согласно C99, потому что вы явно объявляете __func__
.
J.2 Неопределенное поведение
Поведение не определено в следующих обстоятельствах:
...
Идентификатор __func__
явно объявлен (6.4.2.2).
И известно, что неопределенное поведение означает, что все может произойти [и это включает ошибку компиляцииа также]