gdb.base/examine-backward.exp C++ify and Clang

Adjust gdb.base/examine-backward.exp to let the testcase build and run
as a C++ program, built with either G++ or Clang++.

The change to use unsigned char instead of plain char is to avoid
narrowing warnings:

  gdb compile failed, src/gdb/testsuite/gdb.base/examine-backward.c:55:1: error: narrowing conversion of '227' from 'int' to 'char' [-Wnarrowing]
     55 | };
	| ^

gdb/testsuite/ChangeLog:

	* gdb.base/examine-backward.c (Barrier, TestStrings): Now unsigned
	char array.
	(main): Add references to Barrier, TestStrings, TestStringsH and
	TestStringsW.
	* gdb.base/examine-backward.exp: Issue "set print asm-demangle on"
	and expect a full prototype in C++.
This commit is contained in:
Pedro Alves 2020-09-17 23:33:40 +01:00
parent 52626c5826
commit 11fac33796
3 changed files with 19 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2020-09-17 Pedro Alves <pedro@palves.net>
* gdb.base/examine-backward.c (Barrier, TestStrings): Now unsigned
char array.
(main): Add references to Barrier, TestStrings, TestStringsH and
TestStringsW.
* gdb.base/examine-backward.exp: Issue "set print asm-demangle on"
and expect a full prototype in C++.
2020-09-17 Pedro Alves <pedro@palves.net> 2020-09-17 Pedro Alves <pedro@palves.net>
* gdb.base/nested-addr.c (main): Add cast. * gdb.base/nested-addr.c (main): Add cast.

View File

@ -36,11 +36,11 @@ literals. The content of each array is the same as followings:
TestStrings, to avoid showing garbage when we look for strings TestStrings, to avoid showing garbage when we look for strings
backwards from TestStrings. */ backwards from TestStrings. */
const char Barrier[] = { const unsigned char Barrier[] = {
0x00, 0x00,
}; };
const char TestStrings[] = { const unsigned char TestStrings[] = {
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
@ -92,6 +92,9 @@ const int TestStringsW[] = {
int int
main (void) main (void)
{ {
/* Clang++ eliminates the variables if nothing references them. */
int dummy = Barrier[0] + TestStrings[0] + TestStringsH[0] + TestStringsW[0];
/* Backward disassemble test requires at least 20 instructions in /* Backward disassemble test requires at least 20 instructions in
this function. Adding a simple bubble sort. */ this function. Adding a simple bubble sort. */
int i, j; int i, j;

View File

@ -345,9 +345,12 @@ with_test_prefix "backward disassemble general" {
set length_to_examine {1 2 3 4 10} set length_to_examine {1 2 3 4 10}
set disassmbly {} set disassmbly {}
gdb_test "x/i main" "0x\[0-9a-fA-F\]+ <main>:\t.*" \ gdb_test_no_output "set print asm-demangle on"
set main_re "main(\\(\\))?"
gdb_test "x/i main" "0x\[0-9a-fA-F\]+ <$main_re>:\t.*" \
"move the current position to main (x/i)" "move the current position to main (x/i)"
gdb_test "x/-i" "0x\[0-9a-fA-F\]+ <main>:\t.*" \ gdb_test "x/-i" "0x\[0-9a-fA-F\]+ <$main_re>:\t.*" \
"move the current position to main (x/-i)" "move the current position to main (x/-i)"
for {set i 0} {$i < [llength $length_to_examine]} {incr i} { for {set i 0} {$i < [llength $length_to_examine]} {incr i} {
set len [lindex $length_to_examine $i] set len [lindex $length_to_examine $i]