RFC: Some more store.exp failures - tweak the test

Daniel Jacobowitz drow@mvista.com
Tue Jul 1 21:55:00 GMT 2003


This patch fixes the store.exp failures for ARM.  Two changes:
  - Change char to signed char, because some patterns match -1.  If anyone
    prefers changing the patterns to match 255 would work too.
  - Change "return l" to "return l + r".  "up; print r" doesn't work if
    "r" is not live across the function call; even without optimization
    GCC will re-use the register.  Then we lose.

I believe these changes don't impact the point of the test.  If nobody
disagrees with me, I'd like to commit this.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

2003-07-01  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.base/store.c (wack_char): Make l and r signed characters.
	Return l + r to keep r live across the call.
	(wack_short, wack_int, wack_long, wack_longest, wack_float)
	(wack_double, wack_doublest): Return l + r to keep r live across
	the call.
	* gdb.base/store.exp: Accomodate store.c changes.

Index: gdb/testsuite/gdb.base/store.c
===================================================================
--- gdb.orig/testsuite/gdb.base/store.c	2003-06-14 18:10:47.000000000 -0400
+++ gdb/testsuite/gdb.base/store.c	2003-07-01 17:05:58.000000000 -0400
@@ -64,9 +64,9 @@ add_doublest (register doublest u, regis
 char
 wack_char (register char u, register char v)
 {
-  register char l = u, r = v;
+  register signed char l = u, r = v;
   l = add_char (l, r);
-  return l;
+  return l + r;
 }
 
 short
@@ -74,7 +74,7 @@ wack_short (register short u, register s
 {
   register short l = u, r = v;
   l = add_short (l, r);
-  return l;
+  return l + r;
 }
 
 int
@@ -82,7 +82,7 @@ wack_int (register int u, register int v
 {
   register int l = u, r = v;
   l = add_int (l, r);
-  return l;
+  return l + r;
 }
 
 long
@@ -90,7 +90,7 @@ wack_long (register long u, register lon
 {
   register long l = u, r = v;
   l = add_long (l, r);
-  return l;
+  return l + r;
 }
 
 long
@@ -98,7 +98,7 @@ wack_longest (register longest u, regist
 {
   register longest l = u, r = v;
   l = add_longest (l, r);
-  return l;
+  return l + r;
 }
 
 float
@@ -106,7 +106,7 @@ wack_float (register float u, register f
 {
   register float l = u, r = v;
   l = add_float (l, r);
-  return l;
+  return l + r;
 }
 
 double
@@ -114,7 +114,7 @@ wack_double (register double u, register
 {
   register double l = u, r = v;
   l = add_double (l, r);
-  return l;
+  return l + r;
 }
 
 doublest
@@ -122,7 +122,7 @@ wack_doublest (register doublest u, regi
 {
   register doublest l = u, r = v;
   l = add_doublest (l, r);
-  return l;
+  return l + r;
 }
 
 /* */
Index: gdb/testsuite/gdb.base/store.exp
===================================================================
--- gdb.orig/testsuite/gdb.base/store.exp	2003-06-14 18:10:47.000000000 -0400
+++ gdb/testsuite/gdb.base/store.exp	2003-07-01 17:06:52.000000000 -0400
@@ -57,13 +57,13 @@ if ![runto_main] then {
 proc check_set { t l r new add } {
     global gdb_prompt
     gdb_test "tbreak wack_${t}"
-    gdb_test "continue" "register ${t} l = u, r = v;" "continue to wack_${t}"
+    gdb_test "continue" "register (signed )?${t} l = u, r = v;" "continue to wack_${t}"
     gdb_test "next" "l = add_${t} .l, r.;" "next ${t}"
     gdb_test "print l" " = ${l}" "print old l - ${t}"
     gdb_test "print r" " = ${r}" "print old r - ${t}"
     gdb_test "set variable l = 4"
     gdb_test "print l" " = ${new}" "print new l - ${t}"
-    gdb_test "next" "return l;"
+    gdb_test "next" "return l \\+ r;"
     gdb_test "print l" " = ${add}" "print add  - ${t}"
 }
 



More information about the Gdb-patches mailing list