Mercurial > projects > ldc
view lphobos/internal/contract.d @ 978:6a32d2e18175
Fix a latent bug in the asm code.
I think that technically, using "*m0" instead of "*0" allows LLVM to pick
between using the same memory as output 0 and using a new memory location.
(So far I haven't been able to construct a testcase that actually breaks
because of this, though)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Wed, 18 Feb 2009 03:38:12 +0100 |
parents | 373489eeaf90 |
children |
line wrap: on
line source
module internal.contract; import std.string: toString; extern(C): void exit(int); /*void _d_assert(bool cond, uint line, char[] msg) { if (!cond) { printf("Aborted(%u): %.*s\n", line, msg.length, msg.ptr); exit(1); } }*/ void _d_assert(string file, uint line) { throw new Exception(file~":"~.toString(line)~": Assertion failed!"); } void _d_assert_msg(string msg, string file, uint line) { throw new Exception(file~": "~.toString(line)~": Assertion failed: \""~msg~"\""); }