Re: ChaN's xprintf() and arithmetic on pointer to void yields Undefined Behavior
GCC is very loose on the standards. But since it is common people code to it. It appears this library is depending on undefined behavior. That means it will not work on every compiler. The issue is not with the compiler, it is with the library.
As far a recursion, well That is the price you pay be able to code in C on a pic16 or 18.