Partial fix for #13761.

C++ unlike D accepts code like:
int a = true ? 1 : a; 
and a will be uninitialized
Then if was a logic error in the original code.