From f53b3eeb677aace413d45b4b3c9d23d57d7167fc Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Fri, 26 Jun 2020 14:53:28 +0100 Subject: [PATCH] Fix -Wstring-compare testcase build failure Clang fails to compile the file gdb/testsuite/gdb.cp/try_catch.cc with the following error: warning: result of comparison against a string literal is unspecified (use strncmp instead) [-Wstring-compare] This commit fixes the error, replacing the pointer comparison with a call to strcmp. This commit also adds a final check: the test program is run to the final return statement, and the value of "test" is checked to ensure it is still "true" at that point. gdb/testsuite/ChangeLog: * gdb.cp/try_catch.cc: Include string.h. (main): Replace comparison against string literal with strcmp, avoiding build failure with -Wstring-compare. Add "marker test-complete". * gdb.cp/try_catch.exp: Run the test to the above marker, then verify that the value of "test" is still true. --- gdb/testsuite/ChangeLog | 9 +++++++++ gdb/testsuite/gdb.cp/try_catch.cc | 5 +++-- gdb/testsuite/gdb.cp/try_catch.exp | 4 ++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8ad2448080..a01a065d81 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2020-06-26 Gary Benson + + * gdb.cp/try_catch.cc: Include string.h. + (main): Replace comparison against string literal with + strcmp, avoiding build failure with -Wstring-compare. + Add "marker test-complete". + * gdb.cp/try_catch.exp: Run the test to the above marker, + then verify that the value of "test" is still true. + 2020-06-25 Andrew Burgess * gdb.arch/riscv-tdesc-regs.exp: New test cases. diff --git a/gdb/testsuite/gdb.cp/try_catch.cc b/gdb/testsuite/gdb.cp/try_catch.cc index 4c4add26e6..5f454f41ec 100644 --- a/gdb/testsuite/gdb.cp/try_catch.cc +++ b/gdb/testsuite/gdb.cp/try_catch.cc @@ -18,6 +18,7 @@ #include #include #include +#include enum region { oriental, egyptian, greek, etruscan, roman }; @@ -129,8 +130,8 @@ int main() } catch (exception& obj) { - if (obj.what() != "gdb.1") // marker 3-catch + if (strcmp (obj.what(), "gdb.1") != 0) // marker 3-catch test &= false; } - return 0; + return 0; // marker test-complete } diff --git a/gdb/testsuite/gdb.cp/try_catch.exp b/gdb/testsuite/gdb.cp/try_catch.exp index fb532949d1..b52e1a0a52 100644 --- a/gdb/testsuite/gdb.cp/try_catch.exp +++ b/gdb/testsuite/gdb.cp/try_catch.exp @@ -63,5 +63,9 @@ gdb_continue_to_breakpoint "marker 3-throw" gdb_breakpoint [gdb_get_line_number "marker 3-catch"] gdb_continue_to_breakpoint "marker 3-catch" +gdb_breakpoint [gdb_get_line_number "marker test-complete"] +gdb_continue_to_breakpoint "marker test-complete" +gdb_test "p test" "= true" + gdb_exit return 0