Fix -Wstring-compare testcase build failure
authorGary Benson <gbenson@redhat.com>
Fri, 26 Jun 2020 13:53:28 +0000 (14:53 +0100)
committerGary Benson <gbenson@redhat.com>
Fri, 26 Jun 2020 13:53:28 +0000 (14:53 +0100)
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
gdb/testsuite/gdb.cp/try_catch.cc
gdb/testsuite/gdb.cp/try_catch.exp

index 8ad2448080aed42e6e8e4a69c4d6e5ee632a5e1b..a01a065d814f1855f413acd867a9e2f2d48cbf1c 100644 (file)
@@ -1,3 +1,12 @@
+2020-06-26  Gary Benson <gbenson@redhat.com>
+
+       * 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  <andrew.burgess@embecosm.com>
 
        * gdb.arch/riscv-tdesc-regs.exp: New test cases.
index 4c4add26e638c16538f593881bd3a0f203cb3ffa..5f454f41ec5ff3f5febea8a910fc1288d9866298 100644 (file)
@@ -18,6 +18,7 @@
 #include <exception>
 #include <stdexcept>
 #include <string>
+#include <string.h>
 
 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
 }
index fb532949d12220fbc1a3bec02f73fae01d74bf4c..b52e1a0a5221ee6050d75e2c4468b97606a96beb 100644 (file)
@@ -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