(that does not match one of the two previous forms) is permitted.The preprocessing tokens after include in the directive are processed just as in normal text. (Each identifier currently defined as a macro name is replaced by its replacement list of preprocessing tokens.) The directive resulting after all replacements shall match one of the two previous forms
The cause was in fact that passthrough mode for including macros wasn't supported. Without passthrough mode including macros works as expected. It is now fixed, thanks for reporting this issue.
Observation
where line 27 is:
C99 standard reference
In 6.10.2 of the C99 standard you can read:
Furthermore, the current C++ draft still has this behavior: http://eel.is/c++draft/cpp.include#4