[RFA] Handle BINOP_INTDIV in valarith.c

Pierre Muller
2008-01-16T14:14:05Z

While trying to write a pascal expression parser test
I came upon the problem that
BINOP_INTDIV is not handled in value_binop function.

(gdb) set lang pascal
(gdb) print 25 div 2
GDB does not (yet) know how to evaluate that kind of expression

This patch fixes this.

OK to commit?

Pierre Muller

I also noticed that the unsigned case is not guarded against v2 being zero,
but I will send another patch for this once that one is in.

ChangeLog entry:

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

* valarith.c (value_binop): Handle BINOP_INTDIV
for unsigned and signed integers.

Index: gdb/valarith.c
===================================================================
RCS file: /cvs/src/src/gdb/valarith.c,v
retrieving revision 1.52
diff -u -p -r1.52 valarith.c
--- gdb/valarith.c 7 Jan 2008 22:33:57 -0000 1.52
+++ gdb/valarith.c 16 Jan 2008 14:09:44 -0000
@@ -1033,6 +1033,7 @@ value_binop (struct value *arg1, struct
break;

case BINOP_DIV:
+ case BINOP_INTDIV:
v = v1 / v2;
break;

@@ -1152,6 +1153,7 @@ value_binop (struct value *arg1, struct
break;

case BINOP_DIV:
+ case BINOP_INTDIV:
if (v2 != 0)
v = v1 / v2;
else