Re: [RFA/RFC] MI: accept (void) as well as ().

Michael Elizabeth Chastain
2002-05-09T03:10:17Z

Andrew Cagney writes:
> It shouldn't be. Just want to be sure that the difference isn't
> something MI can control. Anyone know?

This might be overkill, so if it is, just ignore me or something ...

I've attached some log excerpts for everyone's enjoyment. All the dwarf-2
logs look like the first one (gcc 2.95.3, gcc 2.96-rh, gcc 3.0.4,
gcc gcc-3_1-branch%20020505, gcc HEAD%20020505). All the stabs+ logs look like
the second one (same batch of gcc compilers).

It's definitely a dwarf-2 versus stabs+ issue with argument types in
pointer-to-function, not a v2 versus v3 "void" representation thing.
Look at the _struct_decl declaration.

(The hard part about the test suite is mining half a million test results
and putting it in a form where people can see a pattern).

Michael C

# target=native, host=i686-pc-linux-gnu%rh-7.2, gdb=HEAD%20020505,
# gcc=2.95.3, goption=-gdwarf-2

-var-list-children struct_declarations^M
^done,numchild="11",children={child={name="struct_declarations.integer",exp="integer",numchild="0",type="int"},child={name="struct_declarations.character",exp="character",numchild="0",type="char"},child={name="struct_declarations.char_ptr",exp="char_ptr",numchild="1",type="char *"},child={name="struct_declarations.long_int",exp="long_int",numchild="0",type="long int"},child={name="struct_declarations.int_ptr_ptr",exp="int_ptr_ptr",numchild="1",type="int **"},child={name="struct_declarations.long_array",exp="long_array",numchild="10",type="long int [10]"},child={name="struct_declarations.func_ptr",exp="func_ptr",numchild="0",type="void (*)(void)"},child={name="struct_declarations.func_ptr_struct",exp="func_ptr_struct",numchild="0",type="struct _struct_decl (*)(int, char *, long int)"},child={name="struct_declarations.func_ptr_ptr",exp="func_ptr_ptr",numchild="0",type="struct _struct_decl *(*)(int, char *, long int)"},child={name="struct_declarations.u1",exp="u1",numchild="4!
",type="union {...}"},child={name="struct_declarations.s2",exp="s2",numchild="4",type="struct {...}"}}^M
(gdb) ^M
FAIL: gdb.mi/mi-var-child.exp: get children of struct_declarations

# target=native, host=i686-pc-linux-gnu%rh-7.2, gdb=HEAD%20020505,
# gcc=2.95.3, goption=-gstabs+

-var-list-children struct_declarations^M
^done,numchild="11",children={child={name="struct_declarations.integer",exp="integer",numchild="0",type="int"},child={name="struct_declarations.character",exp="character",numchild="0",type="char"},child={name="struct_declarations.char_ptr",exp="char_ptr",numchild="1",type="char *"},child={name="struct_declarations.long_int",exp="long_int",numchild="0",type="long int"},child={name="struct_declarations.int_ptr_ptr",exp="int_ptr_ptr",numchild="1",type="int **"},child={name="struct_declarations.long_array",exp="long_array",numchild="10",type="long int [10]"},child={name="struct_declarations.func_ptr",exp="func_ptr",numchild="0",type="void (*)()"},child={name="struct_declarations.func_ptr_struct",exp="func_ptr_struct",numchild="0",type="struct _struct_decl (*)()"},child={name="struct_declarations.func_ptr_ptr",exp="func_ptr_ptr",numchild="0",type="struct _struct_decl *(*)()"},child={name="struct_declarations.u1",exp="u1",numchild="4",type="union {...}"},child={name="struct_decl!
arations.s2",exp="s2",numchild="4",type="struct {...}"}}^M
(gdb) ^M
PASS: gdb.mi/mi-var-child.exp: get children of struct_declarations