https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88966
--- Comment #2 from Bin Meng <bmeng.cn at gmail dot com> --- (In reply to Dimitar Dimitrov from comment #1) > The "linux" is a predefined macro: > > $ $ gcc -E -dM - </dev/null|grep -w linux > #define linux 1 > > Looks like by-design to me. Indeed "linux" is a predefined macro. But why does str(linux) and stringify(linux) give different results?