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");