http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57489
--- Comment #1 from Jim Hand <jhand at austin dot rr.com> --- One of my coworkers looked at the assembly and said that it appears g++ isn't even generating code for the conditional "if (expected_v != actual_v || expected_i != actual_i)" when this occurs. It appears the compiler is analyzing the inline code and determining that the conditional isn't required. Testing with some smaller numbers seems to cause the conditional to be generated. With a number of 9223372036854775759 or less, the conditional seems to work as expected. Good luck with this one!