Unintialized values are fine as long as the compiler can prove that the value is never used until it is initialized. See https://is.gd/gDJCeG as an example. Try deleting the else block.
That's fine, and now that I think about it, in C++ just setting the flag to make all compiler warnings also errors, it too would prevent compilation (I think?).