Target a virtual architecture (LLVM IR). Run the original code in an emulator for the target system (QEMU); give warnings where the two differ, with a switch for the virtual architecture to mimic the behavior of whatever architecture you need.<p>You get friendly C, a new way to think about warnings, and your old code can still be compatible with the new virtual architecture.<p>Next up, world hunger.