Quote Originally Posted by ryao View Post
The fact that there is nesting is the issue, not the depth of it. The issue is that nested functions are illegal in both C and C++.
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.

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.