From b15964b769373f25f276430914c5efa84d411032 Mon Sep 17 00:00:00 2001 From: Bernd Edlinger 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(-) diff --git a/gdb/testsuite/gdb.base/skip.exp b/gdb/testsuite/gdb.base/skip.exp index d763194..15dec42 100644 --- a/gdb/testsuite/gdb.base/skip.exp +++ b/gdb/testsuite/gdb.base/skip.exp @@ -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