It really isn't optional as a C developer to turn on warnings and get your code warning-free. This will eliminate the most common unbounded behavior issues, like uninitialized variables, though unfortunately not all of them.
linux, qemu, postgres and many other projects written by "C developers" use and rely on fwrapv, fno-strict-aliasing and others.
They also turn on warnings, so they catch uninitialized variables and the like.