2008-01-16 Pedro Alves * gdb.mi/mi-var-child.c (do_children_tests): Add 'dummy' integer and 'dummy_ptr' integer pointer. Initialize struct_declarations with dummy_ptr's address. * gdb.mi/var-cmd.c (do_children_tests): Likewise. * gdb.mi/mi-var-child.exp: int_ptr_ptr is now always "editable" on all targets. * gdb.mi/mi2-var-child.exp: Likewise. --- gdb/testsuite/gdb.mi/mi-var-child.c | 8 ++++++-- gdb/testsuite/gdb.mi/mi-var-child.exp | 4 ++-- gdb/testsuite/gdb.mi/mi2-var-child.exp | 4 ++-- gdb/testsuite/gdb.mi/var-cmd.c | 8 ++++++-- 4 files changed, 16 insertions(+), 8 deletions(-) Index: src/gdb/testsuite/gdb.mi/mi-var-child.c =================================================================== --- src.orig/gdb/testsuite/gdb.mi/mi-var-child.c 2008-01-16 10:48:35.000000000 -0500 +++ src/gdb/testsuite/gdb.mi/mi-var-child.c 2008-01-16 11:27:37.000000000 -0500 @@ -206,8 +206,12 @@ do_children_tests (void) int *foo; int bar; - struct _struct_decl struct_declarations; - memset (&struct_declarations, 0, sizeof (struct_declarations)); + /* Avoid pointing into NULL, as that is editable on some + systems. */ + int dummy; + int *dummy_ptr = &dummy; + + struct _struct_decl struct_declarations = { 0, 0, NULL, 0, &dummy_ptr }; weird = &struct_declarations; struct_declarations.integer = 123; Index: src/gdb/testsuite/gdb.mi/mi-var-child.exp =================================================================== --- src.orig/gdb/testsuite/gdb.mi/mi-var-child.exp 2008-01-16 10:48:35.000000000 -0500 +++ src/gdb/testsuite/gdb.mi/mi-var-child.exp 2008-01-16 10:50:44.000000000 -0500 @@ -682,13 +682,13 @@ mi_gdb_test "-var-show-attributes weird- # Test: c_variable-4.99 # Desc: is *(weird->int_ptr_ptr) editable mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr" \ - "\\^done,attr=\"noneditable\"" \ + "\\^done,attr=\"editable\"" \ "is weird.int_ptr_ptr.*int_ptr_ptr editable" # Test: c_variable-4.100 # Desc: is *(*(weird->int_ptr_ptr)) editable mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr" \ - "\\^done,attr=\"noneditable\"" \ + "\\^done,attr=\"editable\"" \ "is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable" # Test: c_variable-4.101 Index: src/gdb/testsuite/gdb.mi/mi2-var-child.exp =================================================================== --- src.orig/gdb/testsuite/gdb.mi/mi2-var-child.exp 2008-01-16 11:23:13.000000000 -0500 +++ src/gdb/testsuite/gdb.mi/mi2-var-child.exp 2008-01-16 11:26:27.000000000 -0500 @@ -681,13 +681,13 @@ mi_gdb_test "-var-show-attributes weird- # Test: c_variable-4.99 # Desc: is *(weird->int_ptr_ptr) editable mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr" \ - "\\^done,attr=\"noneditable\"" \ + "\\^done,attr=\"editable\"" \ "is weird.int_ptr_ptr.*int_ptr_ptr editable" # Test: c_variable-4.100 # Desc: is *(*(weird->int_ptr_ptr)) editable mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr" \ - "\\^done,attr=\"noneditable\"" \ + "\\^done,attr=\"editable\"" \ "is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable" # Test: c_variable-4.101 Index: src/gdb/testsuite/gdb.mi/var-cmd.c =================================================================== --- src.orig/gdb/testsuite/gdb.mi/var-cmd.c 2008-01-16 11:24:32.000000000 -0500 +++ src/gdb/testsuite/gdb.mi/var-cmd.c 2008-01-16 11:27:17.000000000 -0500 @@ -210,8 +210,12 @@ do_children_tests (void) int *foo; int bar; - struct _struct_decl struct_declarations; - memset (&struct_declarations, 0, sizeof (struct_declarations)); + /* Avoid pointing into NULL, as that is editable on some + systems. */ + int dummy; + int *dummy_ptr = &dummy; + + struct _struct_decl struct_declarations = { 0, 0, NULL, 0, &dummy_ptr }; weird = &struct_declarations; struct_declarations.integer = 123;