aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2012-08-07 13:13:49 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2012-08-07 13:13:49 +0000
commite2de53900e9726ff35583c281de80048d538c35c (patch)
tree98d43684bc1c1294f3bcdcade7a6fc7c08bca5d3 /gdb
parent5125d2b04033a08f3f9e70d1e71a9e61b5858879 (diff)
downloadgdb-e2de53900e9726ff35583c281de80048d538c35c.zip
gdb-e2de53900e9726ff35583c281de80048d538c35c.tar.gz
gdb-e2de53900e9726ff35583c281de80048d538c35c.tar.bz2
gdb/testsuite/
Do not false FAIL with old GCCs. * gdb.base/watchpoint.exp (self-delete local watch) <$no_hw>: XFAIL for GCC < 4.5 in $no_hw mode.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/watchpoint.exp22
2 files changed, 27 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 1446fcf..d0b0f35 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2012-08-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+ Do not false FAIL with old GCCs.
+ * gdb.base/watchpoint.exp (self-delete local watch) <$no_hw>: XFAIL for
+ GCC < 4.5 in $no_hw mode.
+
+2012-08-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
* gdb.base/default.exp (cd): Accept new directory with no arguments.
2012-08-06 Jan Kratochvil <jan.kratochvil@redhat.com>
diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp
index b7ae2e1..09f2375 100644
--- a/gdb/testsuite/gdb.base/watchpoint.exp
+++ b/gdb/testsuite/gdb.base/watchpoint.exp
@@ -459,7 +459,27 @@ proc test_complex_watchpoint {} {
#
gdb_test "watch local_a" ".*\[Ww\]atchpoint \[0-9\]*: local_a" "set local watch"
gdb_test "cont" "\[Ww\]atchpoint.*local_a.*" "trigger local watch"
- gdb_test "cont" "Continuing.*\[Ww\]atchpoint .* deleted because the program has left the block in.*which its expression is valid.*" "self-delete local watch"
+
+ set test "self-delete local watch"
+ gdb_test_multiple "cont" $test {
+ -re "Continuing.*\[Ww\]atchpoint .* deleted because the program has left the block in.*which its expression is valid.*\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re "can't compute CFA for this frame.*\r\n$gdb_prompt $" {
+ global compiler_info no_hw
+
+ # GCC < 4.5.0 does not get LOCATIONS_VALID set by dwarf2read.c.
+ # Therefore epilogue unwinder gets applied which is
+ # incompatible with dwarf2_frame_cfa.
+ verbose -log "compiler_info: $compiler_info"
+ if {$no_hw && ([test_compiler_info {gcc-[0-3]-*}]
+ || [test_compiler_info {gcc-4-[0-4]-*}])} {
+ xfail "$test (old GCC has broken watchpoints in epilogues)"
+ return
+ }
+ fail $test
+ }
+ }
gdb_continue_to_breakpoint "func2 breakpoint here"
# We should be in "func2" again now. Test a watch of an