This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [BUG] BINOP_DIV and ptyp command


  The code might be useful, but it returns wrong results...
Because if you go the the value_binop
code, you will see that there are some typecast
that do change the result type of BINOP_DIV.
  The problem with Doug's code is that
the error('Division by zero') will be thrown
even for a ptyp command, which is indeed wrong,
but how do we fix the bug then?

  By the way, Doug patch is also not correct because
even though the signed integer division is caught
in value_binop, the corresponding unsigned code
is still missing the same check.
  The patch below fixes
'p 1/0U' output, without the patch
my cygwin gdb just freezes!

OK to commit?

ChangeLog entry:

2008-01-29  Pierre Muller  <muller@ics.u-strasbg.fr>

	* valarith.c (value_binop): Handle unsigned integer
	division by zero.

Index: gdb/valarith.c
===================================================================
RCS file: /cvs/src/src/gdb/valarith.c,v
retrieving revision 1.54
diff -u -p -r1.54 valarith.c
--- gdb/valarith.c      18 Jan 2008 17:07:40 -0000      1.54
+++ gdb/valarith.c      29 Jan 2008 07:23:43 -0000
@@ -1035,7 +1035,10 @@ value_binop (struct value *arg1, struct

            case BINOP_DIV:
            case BINOP_INTDIV:
-             v = v1 / v2;
+             if (v2 != 0)
+               v = v1 / v2;
+             else
+               error (_("Division by zero"));
              break;

            case BINOP_EXP: 






Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]