Re: Improve end check on rs6000 prologue analyzer

Mark Kettenis
2006-09-30T19:32:43Z

> Date: Fri, 29 Sep 2006 17:37:26 -0400
> From: Daniel Jacobowitz <drow@false.org>
>
> Any comments on this patch? Otherwise, I'll plan to commit it in a few
> days.

I get quite a few new regressions on OpenBSD/powerpc. Please don't
commit this.

--- gdb.sum.1 Sat Sep 30 20:56:37 2006
+++ gdb.sum Sat Sep 30 21:25:23 2006
@@ -1,4 +1,4 @@
-Test Run By kettenis on Sat Sep 30 20:33:48 2006
+Test Run By kettenis on Sat Sep 30 21:01:56 2006
Native configuration is powerpc-unknown-openbsd4.0

=== gdb tests ===
@@ -48,8 +48,8 @@ See <URL:http://gcc.gnu.org/bugs.html> f
UNTESTED: gdb.arch/altivec-regs.exp: altivec-regs.exp
Running ../../../../src/gdb/gdb/testsuite/gdb.arch/e500-abi.exp ...
Running ../../../../src/gdb/gdb/testsuite/gdb.arch/e500-prologue.exp ...
-gdb compile failed, /tmp//ccE11866.s: Assembler messages:
-/tmp//ccE11866.s:31: Error: Unrecognized opcode: `evstdd'
+gdb compile failed, /tmp//ccfP7121.s: Assembler messages:
+/tmp//ccfP7121.s:31: Error: Unrecognized opcode: `evstdd'
UNSUPPORTED: gdb.arch/e500-prologue.exp: Testcase compile failed.
Running ../../../../src/gdb/gdb/testsuite/gdb.arch/e500-regs.exp ...
Running ../../../../src/gdb/gdb/testsuite/gdb.arch/gdb1291.exp ...
@@ -63,8 +63,15 @@ Running ../../../../src/gdb/gdb/testsuit
Running ../../../../src/gdb/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp ...
Running ../../../../src/gdb/gdb/testsuite/gdb.arch/powerpc-prologue.exp ...
PASS: gdb.arch/powerpc-prologue.exp: continue to PIC
+PASS: gdb.arch/powerpc-prologue.exp: backtrace in PIC marker
+PASS: gdb.arch/powerpc-prologue.exp: finish from PIC
PASS: gdb.arch/powerpc-prologue.exp: backtrace in PIC
PASS: gdb.arch/powerpc-prologue.exp: saved registers in PIC
+PASS: gdb.arch/powerpc-prologue.exp: continue to optimized
+PASS: gdb.arch/powerpc-prologue.exp: backtrace in optimized marker
+PASS: gdb.arch/powerpc-prologue.exp: finish from optimized
+PASS: gdb.arch/powerpc-prologue.exp: backtrace in optimized
+PASS: gdb.arch/powerpc-prologue.exp: saved registers in optimized
Running ../../../../src/gdb/gdb/testsuite/gdb.asm/asm-source.exp ...
PASS: gdb.asm/asm-source.exp: f at main
PASS: gdb.asm/asm-source.exp: next over macro
@@ -328,7 +335,7 @@ PASS: gdb.base/attach.exp: after attach2
FAIL: gdb.base/attach.exp: after attach2, set tbreak postloop
FAIL: gdb.base/attach.exp: (timeout) after attach2, reach tbreak postloop
FAIL: gdb.base/attach.exp: after attach2, exit (timeout)
-PASS: gdb.base/attach.exp: set source path
+FAIL: gdb.base/attach.exp: set source path
PASS: gdb.base/attach.exp: cd away from process working directory
PASS: gdb.base/attach.exp: before attach3, flush symbols
PASS: gdb.base/attach.exp: before attach3, flush exec
@@ -487,7 +494,7 @@ PASS: gdb.base/break.exp: run until file
PASS: gdb.base/break.exp: run until file:function(3) breakpoint
PASS: gdb.base/break.exp: run until file:function(2) breakpoint
PASS: gdb.base/break.exp: run until file:function(1) breakpoint
-PASS: gdb.base/break.exp: run until quoted breakpoint
+FAIL: gdb.base/break.exp: run until quoted breakpoint
PASS: gdb.base/break.exp: run until file:linenum breakpoint
PASS: gdb.base/break.exp: breakpoint offset +1
PASS: gdb.base/break.exp: step onto breakpoint
@@ -870,7 +877,7 @@ PASS: gdb.base/callfuncs.exp: bt after f
PASS: gdb.base/callfuncs.exp: finish after stop in call dummy preserves register contents
PASS: gdb.base/callfuncs.exp: call function causing a breakpoint and then do a return
PASS: gdb.base/callfuncs.exp: back at main after return from call dummy breakpoint
-PASS: gdb.base/callfuncs.exp: return after stop in call dummy preserves register contents
+FAIL: gdb.base/callfuncs.exp: return after stop in call dummy preserves register contents
PASS: gdb.base/callfuncs.exp: stop at nested call level 1
PASS: gdb.base/callfuncs.exp: backtrace at nested call level 1
PASS: gdb.base/callfuncs.exp: stop at nested call level 2
@@ -1295,8 +1302,8 @@ PASS: gdb.base/condbreak.exp: break mark
PASS: gdb.base/condbreak.exp: breakpoint info
PASS: gdb.base/condbreak.exp: rerun to main
PASS: gdb.base/condbreak.exp: run until breakpoint set at a line number
-PASS: gdb.base/condbreak.exp: run until breakpoint at marker1
-PASS: gdb.base/condbreak.exp: run until breakpoint at marker2
+XFAIL: gdb.base/condbreak.exp: run until breakpoint at marker1
+FAIL: gdb.base/condbreak.exp: run until breakpoint at marker2
Running ../../../../src/gdb/gdb/testsuite/gdb.base/consecutive.exp ...
PASS: gdb.base/consecutive.exp: continue to breakpoint in foo
PASS: gdb.base/consecutive.exp: get breakpoint address for foo
@@ -2084,12 +2091,12 @@ Running ../../../../src/gdb/gdb/testsuit
PASS: gdb.base/ena-dis-br.exp: break marker1
PASS: gdb.base/ena-dis-br.exp: enable break marker1
PASS: gdb.base/ena-dis-br.exp: info break marker1
-PASS: gdb.base/ena-dis-br.exp: continue to break marker1
+XFAIL: gdb.base/ena-dis-br.exp: continue to break marker1
PASS: gdb.base/ena-dis-br.exp: delete break marker1
PASS: gdb.base/ena-dis-br.exp: break marker2
PASS: gdb.base/ena-dis-br.exp: enable once break marker2
PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
-PASS: gdb.base/ena-dis-br.exp: continue to auto-disabled break marker2
+XFAIL: gdb.base/ena-dis-br.exp: continue to auto-disabled break marker2
PASS: gdb.base/ena-dis-br.exp: info auto-disabled break marker2
PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop
PASS: gdb.base/ena-dis-br.exp: rerun to main
@@ -2111,7 +2118,7 @@ PASS: gdb.base/ena-dis-br.exp: ignore br
PASS: gdb.base/ena-dis-br.exp: info ignored break marker1
PASS: gdb.base/ena-dis-br.exp: continue until exit at no stop at ignored break marker1
PASS: gdb.base/ena-dis-br.exp: rerun to main
-PASS: gdb.base/ena-dis-br.exp: continue to break marker1, 2nd time
+XFAIL: gdb.base/ena-dis-br.exp: continue to break marker1, 2nd time
PASS: gdb.base/ena-dis-br.exp: break marker1
PASS: gdb.base/ena-dis-br.exp: ignore break marker1
PASS: gdb.base/ena-dis-br.exp: enable del break marker1
@@ -2611,14 +2618,14 @@ PASS: gdb.base/funcargs.exp: continue to
PASS: gdb.base/funcargs.exp: print *fp
PASS: gdb.base/funcargs.exp: print *dp
PASS: gdb.base/funcargs.exp: run to call4a
-PASS: gdb.base/funcargs.exp: print *stp
+FAIL: gdb.base/funcargs.exp: print *stp
PASS: gdb.base/funcargs.exp: continue to call4b
PASS: gdb.base/funcargs.exp: print *unp (sizeof long == sizeof int)
PASS: gdb.base/funcargs.exp: locate actual args, structs/unions passed by reference
-PASS: gdb.base/funcargs.exp: run to call5a
-PASS: gdb.base/funcargs.exp: print st
-PASS: gdb.base/funcargs.exp: continue to call5b (sizeof long == sizeof int)
-PASS: gdb.base/funcargs.exp: print un (sizeof long == sizeof int)
+FAIL: gdb.base/funcargs.exp: run to call5a
+FAIL: gdb.base/funcargs.exp: print st
+FAIL: gdb.base/funcargs.exp: continue to call5b (sizeof long == sizeof int)
+FAIL: gdb.base/funcargs.exp: print un (sizeof long == sizeof int)
PASS: gdb.base/funcargs.exp: run to call6a
PASS: gdb.base/funcargs.exp: backtrace from call6a
PASS: gdb.base/funcargs.exp: continue to call6b
@@ -2639,7 +2646,7 @@ PASS: gdb.base/funcargs.exp: continue to
PASS: gdb.base/funcargs.exp: backtrace from call6i
PASS: gdb.base/funcargs.exp: continue to call6j
PASS: gdb.base/funcargs.exp: backtrace from call6j
-PASS: gdb.base/funcargs.exp: continue to call6k
+FAIL: gdb.base/funcargs.exp: continue to call6k
PASS: gdb.base/funcargs.exp: backtrace from call6k
PASS: gdb.base/funcargs.exp: run to call7a
PASS: gdb.base/funcargs.exp: backtrace from call7a
@@ -2663,7 +2670,7 @@ PASS: gdb.base/funcargs.exp: continue to
PASS: gdb.base/funcargs.exp: backtrace from call7j
PASS: gdb.base/funcargs.exp: continue to call7k
PASS: gdb.base/funcargs.exp: backtrace from call7k
-PASS: gdb.base/funcargs.exp: run to hitbottom
+FAIL: gdb.base/funcargs.exp: run to hitbottom
PASS: gdb.base/funcargs.exp: recursive passing of structs by value
PASS: gdb.base/funcargs.exp: print c after runto localvars_after_alloca
PASS: gdb.base/funcargs.exp: print s after runto localvars_after_alloca
@@ -4945,7 +4952,7 @@ PASS: gdb.base/sepdebug.exp: run until f
PASS: gdb.base/sepdebug.exp: run until file:function(3) breakpoint
PASS: gdb.base/sepdebug.exp: run until file:function(2) breakpoint
PASS: gdb.base/sepdebug.exp: run until file:function(1) breakpoint
-PASS: gdb.base/sepdebug.exp: run until quoted breakpoint
+FAIL: gdb.base/sepdebug.exp: run until quoted breakpoint
PASS: gdb.base/sepdebug.exp: run until file:linenum breakpoint
PASS: gdb.base/sepdebug.exp: breakpoint offset +1
PASS: gdb.base/sepdebug.exp: step onto breakpoint
@@ -5002,7 +5009,7 @@ PASS: gdb.base/sepdebug.exp: set separat
PASS: gdb.base/sepdebug.exp: breakpoint function, optimized file
PASS: gdb.base/sepdebug.exp: breakpoint small function, optimized file
PASS: gdb.base/sepdebug.exp: run until function breakpoint, optimized file
-PASS: gdb.base/sepdebug.exp: run until breakpoint set at small function, optimized file
+FAIL: gdb.base/sepdebug.exp: run until breakpoint set at small function, optimized file
Running ../../../../src/gdb/gdb/testsuite/gdb.base/setshow.exp ...
PASS: gdb.base/setshow.exp: default annotation_level is zero
PASS: gdb.base/setshow.exp: set annotate 2
@@ -6958,35 +6965,10 @@ PASS: gdb.base/watchpoint.exp: set watch
PASS: gdb.base/watchpoint.exp: watchpoint found in watchpoint/breakpoint table
PASS: gdb.base/watchpoint.exp: disable watchpoint
PASS: gdb.base/watchpoint.exp: disable watchpoint in test_simple_watchpoint
-PASS: gdb.base/watchpoint.exp: run to marker1 in test_simple_watchpoint
-PASS: gdb.base/watchpoint.exp: enable watchpoint
-PASS: gdb.base/watchpoint.exp: break func1
-PASS: gdb.base/watchpoint.exp: set $func1_breakpoint_number = $bpnum
-PASS: gdb.base/watchpoint.exp: continue to breakpoint at func1
-PASS: gdb.base/watchpoint.exp: watchpoint hit, first time
-PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 1
-PASS: gdb.base/watchpoint.exp: delete $func1_breakpoint_number
-PASS: gdb.base/watchpoint.exp: watchpoint hit, second time
-PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 2
-PASS: gdb.base/watchpoint.exp: watchpoint hit, third time
-PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 3
-PASS: gdb.base/watchpoint.exp: watchpoint hit, fourth time
-PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 4
-PASS: gdb.base/watchpoint.exp: watchpoint hit, fifth time
-PASS: gdb.base/watchpoint.exp: Watchpoint hit count is 5
-PASS: gdb.base/watchpoint.exp: continue to marker2
-PASS: gdb.base/watchpoint.exp: watchpoint disabled
-PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_simple_watchpoint
-PASS: gdb.base/watchpoint.exp: watchpoints found in watchpoint/breakpoint table
+FAIL: gdb.base/watchpoint.exp: run to marker1 in test_simple_watchpoint
+FAIL: gdb.base/watchpoint.exp: watchpoints found in watchpoint/breakpoint table
PASS: gdb.base/watchpoint.exp: disable watchpoint in test_disabling_watchpoints
-PASS: gdb.base/watchpoint.exp: run to marker1 in test_disabling_watchpoints
-PASS: gdb.base/watchpoint.exp: watchpoint enabled
-PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, first time
-PASS: gdb.base/watchpoint.exp: watchpoint hit in test_disabling_watchpoints, second time
-PASS: gdb.base/watchpoint.exp: disable watchpoint #2 in test_disabling_watchpoints
-PASS: gdb.base/watchpoint.exp: watchpoint disabled in table
-PASS: gdb.base/watchpoint.exp: disabled watchpoint skipped
-PASS: gdb.base/watchpoint.exp: continue until exit at continue to exit in test_disabling_watchpoints
+FAIL: gdb.base/watchpoint.exp: run to marker1 in test_disabling_watchpoints
PASS: gdb.base/watchpoint.exp: watch ival2
PASS: gdb.base/watchpoint.exp: break func2 if 0
PASS: gdb.base/watchpoint.exp: p $func2_breakpoint_number = $bpnum
@@ -8497,7 +8479,7 @@ PASS: gdb.cp/m-data.exp: template object
PASS: gdb.cp/m-data.exp: template object, base enum
PASS: gdb.cp/m-data.exp: template object, derived enum
PASS: gdb.cp/m-data.exp: continue to breakpoint: continue to shadow breakpoint
-PASS: gdb.cp/m-data.exp: shadowing member
+FAIL: gdb.cp/m-data.exp: shadowing member
PASS: gdb.cp/m-data.exp: shadowed global variable
Running ../../../../src/gdb/gdb/testsuite/gdb.cp/m-static.exp ...
PASS: gdb.cp/m-static.exp: continue to breakpoint: end of constructors
@@ -8722,17 +8704,17 @@ PASS: gdb.cp/ovldbreak.exp: bp menu for
PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg all
PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting on all)
PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : (void|)
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : char
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : signed char
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned char
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : short
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned short
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : int
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : (unsigned|unsigned int)
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : long
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned long
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : float
-PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : double
+KFAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : char (PRMS: gdb/1025)
+KFAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : signed char (PRMS: gdb/1025)
+KFAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned char (PRMS: gdb/1025)
+KFAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : short (PRMS: gdb/1025)
+KFAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned short (PRMS: gdb/1025)
+FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : int
+FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : (unsigned|unsigned int)
+FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : long
+FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned long
+FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : float
+KFAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : double (PRMS: gdb/1025)
PASS: gdb.cp/ovldbreak.exp: continue until exit at finish program
Running ../../../../src/gdb/gdb/testsuite/gdb.cp/pr-1023.exp ...
PASS: gdb.cp/pr-1023.exp: break myClass::performBlocking
@@ -10941,7 +10923,7 @@ PASS: gdb.threads/manythreads.exp: first
PASS: gdb.threads/manythreads.exp: stop threads 1
FAIL: gdb.threads/manythreads.exp: info threads
PASS: gdb.threads/manythreads.exp: second continue
-PASS: gdb.threads/manythreads.exp: stop threads 2
+FAIL: gdb.threads/manythreads.exp: stop threads 2 (timeout)
FAIL: gdb.threads/manythreads.exp: GDB exits after stopping multithreaded program (timeout)
Running ../../../../src/gdb/gdb/testsuite/gdb.threads/print-threads.exp ...
PASS: gdb.threads/print-threads.exp: successfully compiled posix threads test case
@@ -10978,7 +10960,7 @@ PASS: gdb.threads/print-threads.exp: all
Running ../../../../src/gdb/gdb/testsuite/gdb.threads/pthread_cond_wait.exp ...
PASS: gdb.threads/pthread_cond_wait.exp: successfully compiled posix threads test case
PASS: gdb.threads/pthread_cond_wait.exp: breakpoint on break_me
-PASS: gdb.threads/pthread_cond_wait.exp: run to break_me
+FAIL: gdb.threads/pthread_cond_wait.exp: run to break_me
FAIL: gdb.threads/pthread_cond_wait.exp: backtrace in blocked thread
Running ../../../../src/gdb/gdb/testsuite/gdb.threads/pthreads.exp ...
PASS: gdb.threads/pthreads.exp: successfully compiled posix threads test case
@@ -11097,7 +11079,7 @@ PASS: gdb.trace/limits.exp: Current targ
Running ../../../../src/gdb/gdb/testsuite/gdb.trace/packetlen.exp ...
PASS: gdb.trace/packetlen.exp: setup collect actions
PASS: gdb.trace/packetlen.exp: survive the long packet send
-PASS: gdb.trace/packetlen.exp: run trace experiment
+FAIL: gdb.trace/packetlen.exp: run trace experiment
PASS: gdb.trace/packetlen.exp: confirm: survived the long packet send
Running ../../../../src/gdb/gdb/testsuite/gdb.trace/passc-dyn.exp ...
PASS: gdb.trace/passc-dyn.exp: Current target does not support trace
@@ -11182,10 +11164,10 @@ PASS: gdb.trace/while-stepping.exp: 5.16

=== gdb Summary ===

-# of expected passes 10560
-# of unexpected failures 86
-# of expected failures 42
-# of known failures 78
+# of expected passes 10507
+# of unexpected failures 111
+# of expected failures 46
+# of known failures 84
# of unresolved testcases 1
# of untested testcases 8
# of unsupported tests 16