Is there any difference in convenience between __FUNCTION__ and __func__ (which is a standard way to query function name)?
__func__ is similarly supported by all the mainstream compilers and has a benefit of being standard.
If you have an old code that uses __FUNCTION__ you can easily define __FUNCTION__=__func__.
I tried CC 12.3 and if you put something like this in your code:
printf("func is %s\n", __func__);
then it apparently creates not one but three local variables which
you can see in dbx:
__FUNCTION__ = "main"
__PRETTY_FUNCTION__ = "int main()"
__func__ = "main"
gdb will generate __func__ as a local but defines __FUNCTION__ as a macro.
The advantage of a macro is that it won't pollute the locals window
in the IDE with needless information. With macros you can also
do string and macro gluing.