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]

[RFA] Handle BINOP_INTDIV in valarith.c


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





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