On Thu, Jan 10, 2019 at 03:35:14PM +0100, Florian Weimer wrote: > * Jakub Jelinek: > > > On Thu, Jan 10, 2019 at 03:20:59PM +0100, Florian Weimer wrote: > >> Can we remove __has_include__? > > > > No. > > > >> Its availability results in code which is needlessly non-portable > >> because for some reason, people write __has_include__ instead of > >> __has_include. (I don't think there is any difference.) > > > > __has_include needs to be a macro, while __has_include__ is a weirdo > > builtin that does all the magic. But one needs to be able to > > #ifdef __has_include > > etc. > > Why doesn't a synthetic > > #define __has_include __has_include > > work?
Because the magic builtin is a preprocessor builtin, kind of macro, so you can't have a normal macro with the same name. Jakub