From b15964b769373f25f276430914c5efa84d411032 Mon Sep 17 00:00:00 2001
From: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date: Sun, 15 Dec 2019 11:05:47 +0100
Subject: [PATCH] Fix skip.exp test failure observed with gcc-9.2.0
Need to step a second time because with this gcc version
the first step jumps back to main before entering foo.
---
gdb/testsuite/gdb.base/skip.exp | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
@@ -21,8 +21,8 @@ load_lib completion-support.exp
standard_testfile
if { [prepare_for_testing "failed to prepare" "skip" \
- {skip.c skip1.c } \
- {debug nowarnings}] } {
+ {skip.c skip1.c } \
+ {debug nowarnings}] } {
return -1
}
@@ -142,7 +142,9 @@ with_test_prefix "step after disabling 3" {
gdb_test "step" "bar \\(\\) at.*" "step 1"
gdb_test "step" ".*" "step 2"; # Return from foo()
- gdb_test "step" "foo \\(\\) at.*" "step 3"
+ # With gcc 9.2.0 we jump once back to main before entering foo here.
+ # If that happens try to step a second time.
+ gdb_test "step" "foo \\(\\) at.*" "step 3" "main \\(\\) at .*" "step"
gdb_test "step" ".*" "step 4"; # Return from bar()
gdb_test "step" "main \\(\\) at.*" "step 5"
}
@@ -261,7 +263,9 @@ with_test_prefix "step using -fu for baz" {
gdb_test_no_output "skip enable 7"
gdb_test "step" "bar \\(\\) at.*" "step 1"
gdb_test "step" ".*" "step 2"; # Return from bar()
- gdb_test "step" "foo \\(\\) at.*" "step 3"
+ # With gcc 9.2.0 we jump once back to main before entering foo here.
+ # If that happens try to step a second time.
+ gdb_test "step" "foo \\(\\) at.*" "step 3" "main \\(\\) at.*" "step"
gdb_test "step" ".*" "step 4"; # Return from foo()
gdb_test "step" "main \\(\\) at.*" "step 5"
}
@@ -276,7 +280,9 @@ with_test_prefix "step using -rfu for baz" {
gdb_test_no_output "skip enable 8"
gdb_test "step" "bar \\(\\) at.*" "step 1"
gdb_test "step" ".*" "step 2"; # Return from bar()
- gdb_test "step" "foo \\(\\) at.*" "step 3"
+ # With gcc 9.2.0 we jump once back to main before entering foo here.
+ # If that happens try to step a second time.
+ gdb_test "step" "foo \\(\\) at.*" "step 3" "main \\(\\) at.*" "step"
gdb_test "step" ".*" "step 4"; # Return from foo()
gdb_test "step" "main \\(\\) at.*" "step 5"
}
--
1.9.1