Doesn't work in MSVC though.
Microsoft is committed to C++, as a means to improve systems programming safety with more modern languages.
Besides, the code makes use of GCC extensions.
But the code is neither ISO C99 nor C11. It uses a GNU C extension called “statement expressions”, which is not supported by MSVC.
Also, its preprocessor has quite a few problems. I think after removing statement exprs and running the code through a different PP, MSVC will compile it.
Of course, one could just simply use MinGW or Clang instead.