From a3bdae4ef826f2b59cc475e530b2a4130185cfac Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 14 Dec 2020 07:35:45 -0700 Subject: Handle fixed-point division by zero fixed_point_binop did not account for division by zero. This would lead to gdb getting SIGFPE and subsequently cause some test cases to hang. gdb/ChangeLog 2020-12-14 Tom Tromey * valarith.c (fixed_point_binop): Call error on division by zero. gdb/testsuite/ChangeLog 2020-12-14 Tom Tromey * gdb.dwarf2/dw2-fixed-point.exp: Add test for division by zero. --- gdb/valarith.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gdb/valarith.c') diff --git a/gdb/valarith.c b/gdb/valarith.c index 37988f1..6854d9b 100644 --- a/gdb/valarith.c +++ b/gdb/valarith.c @@ -965,6 +965,8 @@ fixed_point_binop (struct value *arg1, struct value *arg2, enum exp_opcode op) break; case BINOP_DIV: + if (mpq_sgn (v2.val) == 0) + error (_("Division by zero")); mpq_div (res.val, v1.val, v2.val); val = fixed_point_to_value (res); break; -- cgit v1.1