Mercurial > projects > ldc
view lphobos/std/outofmemory.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 | 88e23f8c2354 |
children |
line wrap: on
line source
/** * Macros: * WIKI=Phobos/StdOutOfMemory * Copyright: * Placed into public domain. * www.digitalmars.com */ module std.outofmemory; /****** * This exception is thrown when out of memory errors happen. */ class OutOfMemoryException : Exception { static char[] s = "Out of memory"; /** * Default constructor */ this() { super(s); } char[] toString() { return s; } } extern (C) void _d_OutOfMemory() { printf("Out of memory!\n"); *(cast(int*) 0) = 0; throw cast(OutOfMemoryException) cast(void *) OutOfMemoryException.classinfo.init; } static this() { }