This is used by some glibc headers. From: http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html#Common-Predefined-Macros -- __USER_LABEL_PREFIX__ This macro expands to a single token which is the prefix applied to user labels (symbols visible to C code) in assembly. For example, in the m68k-aout environment it expands to an `_', but in the m68k-coff environment it expands to nothing. This macro will have the correct definition even if -f(no-)underscores is in use, but it will not be correct if target-specific options that adjust this prefix are used (e.g. the OSF/rose -mno-underscores option). --
Implemented here: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080929/007973.html I have no intention of implementing support for -fno-leading-underscore. If someone needs it, they can make sure to fix this macro as well. I don't think the llvm backend supprots it at all for example.