summaryrefslogtreecommitdiff
path: root/gdb/signals/signals.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2003-03-26 20:44:39 +0000
committerDaniel Jacobowitz <dan@debian.org>2003-03-26 20:44:39 +0000
commitdd8ecb1e6f5c9f1ee4be84e17f3b4f12211355bb (patch)
treed46e471ac49d859dfc95b38cb121169102a803ae /gdb/signals/signals.c
parentb8b9be228d8e86c9fef922b37818041381e23cf0 (diff)
downloadgdb-dd8ecb1e6f5c9f1ee4be84e17f3b4f12211355bb.tar.gz
* signals/signals.c (do_target_signal_to_host): Correct realtime
signal range test.
Diffstat (limited to 'gdb/signals/signals.c')
-rw-r--r--gdb/signals/signals.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/gdb/signals/signals.c b/gdb/signals/signals.c
index ba5e7eac59a..ca46a9ed1c7 100644
--- a/gdb/signals/signals.c
+++ b/gdb/signals/signals.c
@@ -518,6 +518,8 @@ static int
do_target_signal_to_host (enum target_signal oursig,
int *oursig_ok)
{
+ int retsig;
+
*oursig_ok = 1;
switch (oursig)
{
@@ -742,36 +744,31 @@ do_target_signal_to_host (enum target_signal oursig,
default:
#if defined (REALTIME_LO)
- if (oursig < REALTIME_LO || oursig >= REALTIME_HI)
- {
- *oursig_ok = 0;
- return 0;
- }
+ retsig = 0;
if (oursig >= TARGET_SIGNAL_REALTIME_33
&& oursig <= TARGET_SIGNAL_REALTIME_63)
{
/* This block of signals is continuous, and
TARGET_SIGNAL_REALTIME_33 is 33 by definition. */
- int retsig =
- (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33;
- return retsig;
+ retsig = (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33;
}
else if (oursig == TARGET_SIGNAL_REALTIME_32)
{
/* TARGET_SIGNAL_REALTIME_32 isn't contiguous with
TARGET_SIGNAL_REALTIME_33. It is 32 by definition. */
- return 32;
+ retsig = 32;
}
else if (oursig >= TARGET_SIGNAL_REALTIME_64
&& oursig <= TARGET_SIGNAL_REALTIME_127)
{
/* This block of signals is continuous, and
TARGET_SIGNAL_REALTIME_64 is 64 by definition. */
- int retsig =
- (int) oursig - (int) TARGET_SIGNAL_REALTIME_64 + 64;
- return retsig;
+ retsig = (int) oursig - (int) TARGET_SIGNAL_REALTIME_64 + 64;
}
+
+ if (retsig >= REALTIME_LO && retsig < REALTIME_HI)
+ return retsig;
#endif
*oursig_ok = 0;