VC++で

ULONGLONG x = 0;
x += 10000000 * 60 * 60 * 3;

ULONGLONG y = 0;
y += (ULONGLONG)10000000 * 60 * 60 * 3;

if (x != y)
cout << "Different" << endl;

とするとxの方はオーバーフローになってxとyが違う数字になってしまうんだけど
64ビットコンパイラではこれは起こらないんだよね? この辺の仕様について
書いてあるページとか無いだろうか?