+2  A: 

Unfortunately I wasn't able to reproduce that warning with provided code. However, I assume the compiler generates it because of a short-circuit evaluation language feature.

X should be always "initialized" in tryParseInt function, but "initialization" of Y depends only on boolean result from previous tryParseInt(str_wrapper(), x) call. But yeah, it still doesn't make any sense why the warning was generated for line inside an if-block. Maybe the compiler has fooled itself?

PiN
C4701 is a level 4 warning, so make sure you have /W4 or the equivalent in the Visual Studio property pages.I agree that the code above isn't the best in terms of style and robustness. My main concern is whether this is a false positive at the compiler level, or if there is some difference in the code that causes the warning. As far as I can tell, callFunc should only be called if tryParseInt was called for both x and y, and both calls succeeded.
Matt Endsley