Two questions, following a quick description.
Been dealing with a lot of C-code lately, porting it from being compiled on one system to being compiled on a new system. The old system was pretty conventional, but the new system is really fragile, and a lot of things that would safely fall into the undefined behavior domain on the old system, but would result in weird explosions and hangs on the new system. What I really need is some way to hold the C-code to a higher standard, and to get it to raise flags when it strays from the straight-and-narrow.
C/C++ seem to have two "standards". One is the actual standard, and the other is this weird de-facto standard that comes about when enough big projects misuse a decision made by a compiler author for long enough such that changing that decision, or the compiler/system/etc, becomes problematic.
So....
1- Is there an implementation of a hardened C and C++ compiler out there that implements all "undefined" behavior with a fail-stop, exception, or something along those lines. Something for which all things are defined, and can be used to iron out the kinks from existing code.
2- If (1) is "no", is there interest in such a thing for people other than myself?