# HG changeset patch # User Christian Kamm # Date 1217161971 -7200 # Node ID dc7dff3ce72efd0576d0d3732ca2eec07905d96c # Parent 723027dd9593436dbb30686f7417579438d348c3 Fix version identifies for EH. diff -r 723027dd9593 -r dc7dff3ce72e tango/lib/compiler/llvmdc/eh.d --- 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