/** * Implementation of exception handling support routines. * * Copyright: Copyright Digital Mars 1999 - 2013. * License: Distributed under the * $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0). * (See accompanying file LICENSE) * Authors: Walter Bright * Source: $(DRUNTIMESRC src/rt/deh.d) */ /* NOTE: This file has been patched from the original DMD distribution to * work with the GDC compiler. */ module rt.deh; extern (C) { Throwable.TraceInfo _d_traceContext(void* ptr = null); void _d_createTrace(Object o, void* context) { auto t = cast(Throwable) o; if (t !is null && t.info is null && cast(byte*) t !is typeid(t).initializer.ptr) { t.info = _d_traceContext(context); } } } version (GNU) public import gcc.deh; else version (Win32) public import rt.deh_win32; else version (Win64) public import rt.deh_win64_posix; else version (Posix) public import rt.deh_win64_posix; else static assert (0, "Unsupported architecture");