The characters after __has_include( have special lexing rules that can't
possibly be applied when __has_include is generated by a macro. Instead of
wrapping __has_include in another macro the following should be used instead:
#ifndef __has_include #define __has_include(...) 0 #endif
This warning should fix the underlying issue for https://llvm.org/pr37990