Mercurial > ecos
changeset 601:9a75fc7968ba
* include/signal.inl (raise): Use if/else rather than switch to
avoid GCC 3.2 bug.
| author | jlarmour |
|---|---|
| date | Thu, 13 Feb 2003 00:03:00 +0000 |
| parents | a4f75ab7f357 |
| children | b8ceb56c280d |
| files | packages/language/c/libc/signals/current/ChangeLog packages/language/c/libc/signals/current/include/signal.inl |
| diffstat | 2 files changed, 8 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/language/c/libc/signals/current/ChangeLog +++ b/packages/language/c/libc/signals/current/ChangeLog @@ -1,3 +1,8 @@ +2003-02-13 Jonathan Larmour <jifl@eCosCentric.com> + + * include/signal.inl (raise): Use if/else rather than switch to + avoid GCC 3.2 bug. + 2002-05-23 Jesper Skov <jskov@redhat.com> * cdl/signals.cdl: Don't build signal2 test when it'll N/A
--- a/packages/language/c/libc/signals/current/include/signal.inl +++ b/packages/language/c/libc/signals/current/include/signal.inl @@ -233,23 +233,16 @@ raise(int __sig) __sigfun = cyg_libc_signal_handlers[__sig]; - switch ( (CYG_ADDRESS)__sigfun ) { - - case (CYG_ADDRESS)SIG_DFL: + if ( __sigfun == SIG_DFL { CYG_TRACE0(cyg_libc_signals_raise_trace_level, "signal handler returned is SIG_DFL"); cyg_libc_signals_unlock(); cyg_libc_signals_default_handler(__sig); - break; - - case (CYG_ADDRESS)SIG_IGN: + } else if ( __sigfun == SIG_IGN ) { CYG_TRACE0(cyg_libc_signals_raise_trace_level, "signal handler returned is SIG_IGN"); cyg_libc_signals_unlock(); - - break; - - default: + } else { CYG_TRACE1(cyg_libc_signals_raise_trace_level, "signal handler returned is at %08x", __sigfun); // call the signal handler directly @@ -259,7 +252,6 @@ raise(int __sig) CYG_CHECK_FUNC_PTR( __sigfun, "returned signal handler invalid!"); (*__sigfun)(__sig); - break; } CYG_REPORT_RETVAL( __ret );
