Excuse me if I'm wrong, but isn't compiling to C instead of e.g. LLVM IR generally considered bad practice unless you have a very good reason due to all of C's undefined behavior?
there are certainly arguments to be made about UB (though i don't think llvm ir is free of it). on the other hand, llvm is ostensibly less portable and it's infrastructure is a rather massive beast to work with.
Why do you want to generate code with undefined behaviours ?