Mercurial > projects > ldc
comparison runtime/internal/eh.d @ 794:661384d6a936
Fix warnings on x86-64. By fvbommel.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Fri, 28 Nov 2008 21:24:08 +0100 |
parents | 4ac97ec7c18e |
children | aa953cc960b6 |
comparison
equal
deleted
inserted
replaced
793:f6dd817060fc | 794:661384d6a936 |
---|---|
278 return _d_eh_install_finally_context(actions, landing_pad, exception_struct, context); | 278 return _d_eh_install_finally_context(actions, landing_pad, exception_struct, context); |
279 } | 279 } |
280 | 280 |
281 // get classinfo for action and check if the one in the | 281 // get classinfo for action and check if the one in the |
282 // exception structure is a base | 282 // exception structure is a base |
283 ClassInfo catch_ci = classinfo_table[-ti_offset]; | 283 ClassInfo catch_ci = *(classinfo_table - ti_offset); |
284 debug(EH_personality) printf("Comparing catch %s to exception %s\n", catch_ci.name.ptr, exception_struct.exception_object.classinfo.name.ptr); | 284 debug(EH_personality) printf("Comparing catch %s to exception %s\n", catch_ci.name.ptr, exception_struct.exception_object.classinfo.name.ptr); |
285 if(_d_isbaseof(exception_struct.exception_object.classinfo, catch_ci)) | 285 if(_d_isbaseof(exception_struct.exception_object.classinfo, catch_ci)) |
286 return _d_eh_install_catch_context(actions, ti_offset, landing_pad, exception_struct, context); | 286 return _d_eh_install_catch_context(actions, ti_offset, landing_pad, exception_struct, context); |
287 | 287 |
288 // we've walked through all actions and found nothing... | 288 // we've walked through all actions and found nothing... |
318 | 318 |
319 else if(actions & _Unwind_Action.HANDLER_PHASE) | 319 else if(actions & _Unwind_Action.HANDLER_PHASE) |
320 { | 320 { |
321 debug(EH_personality) printf("Setting switch value to: %d!\n", switchval); | 321 debug(EH_personality) printf("Setting switch value to: %d!\n", switchval); |
322 _Unwind_SetGR(context, eh_exception_regno, cast(ulong)cast(void*)(exception_struct.exception_object)); | 322 _Unwind_SetGR(context, eh_exception_regno, cast(ulong)cast(void*)(exception_struct.exception_object)); |
323 _Unwind_SetGR(context, eh_selector_regno, switchval); | 323 _Unwind_SetGR(context, eh_selector_regno, cast(ulong)switchval); |
324 _Unwind_SetIP(context, landing_pad); | 324 _Unwind_SetIP(context, landing_pad); |
325 return _Unwind_Reason_Code.INSTALL_CONTEXT; | 325 return _Unwind_Reason_Code.INSTALL_CONTEXT; |
326 } | 326 } |
327 | 327 |
328 fatalerror("reached unreachable"); | 328 fatalerror("reached unreachable"); |