lindquist@341: extern(C) int printf(char*, ...); lindquist@341: lindquist@341: void main() lindquist@341: { lindquist@341: int a,b,c; lindquist@341: a = int.max-1; kamm@741: b = 5; kamm@741: version (LLVM_InlineAsm_X86) kamm@741: { kamm@741: asm kamm@741: { kamm@741: mov EAX, a; kamm@741: mov ECX, b; kamm@741: add EAX, ECX; kamm@741: jo Loverflow; kamm@741: mov c, EAX; kamm@741: } kamm@741: } kamm@741: else version (LLVM_InlineAsm_X86_64) lindquist@341: { kamm@741: asm kamm@741: { kamm@741: movq RDX, a; kamm@741: movq RAX, b; kamm@741: add RDX, RAX; kamm@741: jo Loverflow; kamm@741: movq c, RDX; kamm@741: } lindquist@341: } kamm@741: printf("a == %d\n", a); kamm@741: printf("b == %d\n", b); lindquist@341: printf("c == %d\n", c); kamm@741: assert(c == c); lindquist@341: return; lindquist@341: lindquist@341: Loverflow: kamm@741: int y=0; kamm@741: //assert(0, "overflow"); lindquist@341: }