Mercurial > projects > ldc
changeset 408:dc7dff3ce72e
Fix version identifies for EH.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 27 Jul 2008 14:32:51 +0200 |
parents | 723027dd9593 |
children | 8d62834490d8 |
files | tango/lib/compiler/llvmdc/eh.d |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/tango/lib/compiler/llvmdc/eh.d Sun Jul 27 14:15:22 2008 +0200 +++ b/tango/lib/compiler/llvmdc/eh.d Sun Jul 27 14:32:51 2008 +0200 @@ -8,6 +8,9 @@ // debug = EH_personality; +// current EH implementation works on x86 linux only +version(X86) version(linux) version=X86_LINUX; + private extern(C) void abort(); private extern(C) int printf(char*, ...); @@ -52,7 +55,8 @@ int private_2; } -version(X86) { version(linux) { +version(X86_LINUX) +{ void _Unwind_Resume(_Unwind_Exception*); _Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Exception*); ulong _Unwind_GetLanguageSpecificData(_Unwind_Context_Ptr context); @@ -60,7 +64,7 @@ ulong _Unwind_SetIP(_Unwind_Context_Ptr context, ulong new_value); ulong _Unwind_SetGR(_Unwind_Context_Ptr context, int index, ulong new_value); ulong _Unwind_GetRegionStart(_Unwind_Context_Ptr context); -} } +} else { // runtime calls these directly @@ -148,7 +152,8 @@ // x86 Linux specific implementation of personality function // and helpers // -version(X86) version(linux) { +version(X86_LINUX) +{ // the personality routine gets called by the unwind handler and is responsible for // reading the EH tables and deciding what to do