If by illegal you mean not working in standard C as is true for all compiler extensions, even those supported by Clang/LLVM. The reason they are 'extensions' is because they implement functionality outside of the standard specs. Of course lots of functionality that ended up in the official standards started out as extensions.
Originally Posted by ryao
Now, if you use said extensions you need a compiler which supports them, the Linux kernel for instance make lots of use of compiler extensions simply because they want functionality not provided within the C standards. GCC has exensions, Clang/LLVM has extensions, ICC has extensions, Visual Studio has extensions, etc
So either Clang/LLVM support these extensions which programmers have chosen to make use of, or the code must be rewritten to work without the unsupported extensions.