There are similar but technically different macros such as
__LINE__, __FILE__: useful for debugging, logging
__FUNCTION__: useful for debugging c bindings
__STDC_HOSTED__: ensuring code runs with correct capabilities, eg: embedded only
These are preprocessor macros in gcc (and clang but official documentation is patchy). __PRETTY_FUNCTION__ is a special variable.
If you are using dynamic analysis, clang provides __has_feature(xyz) which really helps for debugging special issues.
PS: if you can't modify the source code, the cpp demangling is not that complicated. Esp if you use
demangler.com