* libc/signal/signal.c (__sigtramp_r): ISO C requires

case labels to be integral constant expressions, so
	use an if/else tree instead.
	(_raise_r): Likewise.
This commit is contained in:
Geoffrey Keating 2000-09-19 19:39:45 +00:00
parent b963175618
commit b944c6f661
2 changed files with 27 additions and 30 deletions

View File

@ -1,3 +1,10 @@
2000-09-19 Geoffrey Keating <geoffk@cygnus.com>
* libc/signal/signal.c (__sigtramp_r): ISO C requires
case labels to be integral constant expressions, so
use an if/else tree instead.
(_raise_r): Likewise.
2000-09-13 Jeff Johnston <jjohnstn@redhat.com>
* libc/machine/v850/setjmp.S: Fixed tab problems caused by

View File

@ -167,7 +167,6 @@ _raise_r (ptr, sig)
int sig;
{
_sig_func_ptr func;
int result = 0;
if (sig < 0 || sig >= NSIG)
{
@ -178,27 +177,22 @@ _raise_r (ptr, sig)
if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0)
return -1;
switch ((_POINTER_INT) ptr->_sig_func[sig])
func = ptr->_sig_func[sig];
if (func == SIG_DFL)
return _kill_r (ptr, _getpid_r (ptr), sig);
else if (func == SIG_IGN)
return 0;
else if (func == SIG_ERR)
{
case SIG_DFL:
return _kill_r (ptr, _getpid_r (ptr), sig);
case SIG_IGN:
break;
case SIG_ERR:
ptr->_errno = EINVAL;
result = 1;
break;
default:
func = ptr->_sig_func[sig];
return 1;
}
else
{
ptr->_sig_func[sig] = SIG_DFL;
func (sig);
break;
return 0;
}
return result;
}
int
@ -215,20 +209,16 @@ __sigtramp_r (ptr, sig)
if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0)
return -1;
switch ((_POINTER_INT) ptr->_sig_func[sig])
func = ptr->_sig_func[sig];
if (func == SIG_DFL)
return 1;
else if (func == SIG_ERR)
return 2;
else if (func == SIG_IGN)
return 3;
else
{
case SIG_DFL:
return 1;
case SIG_ERR:
return 2;
case SIG_IGN:
return 3;
default:
func = ptr->_sig_func[sig];
ptr->_sig_func[sig] = SIG_DFL;
func (sig);
return 0;