Reviewed and approved by Jim Blandy

2006-01-04  Fred Fish  <fnf@specifix.com>
	* gdb.base/ptype.c (foo): Add typedef.
	(intfoo): Add function.
	* gdb.base/ptype1.c: New file.
	* gdb.base/ptype.exp: Handle compilation and linking with two
	source files.  Test that proper type for "foo" is found based
	on source context rather than first match found in symtabs.
This commit is contained in:
Fred Fish 2006-01-04 14:46:17 +00:00
parent 80911fe19f
commit f4d8531447
4 changed files with 46 additions and 2 deletions

View File

@ -1,3 +1,12 @@
2006-01-04 Fred Fish <fnf@specifix.com>
* gdb.base/ptype.c (foo): Add typedef.
(intfoo): Add function.
* gdb.base/ptype1.c: New file.
* gdb.base/ptype.exp: Handle compilation and linking with two
source files. Test that proper type for "foo" is found based
on source context rather than first match found in symtabs.
2005-12-28 Mark Kettenis <kettenis@gnu.org>
* gdb.asm/asm-source.exp (hppa-*-openbsd*): New.

View File

@ -257,6 +257,15 @@ func_type v_func_type;
will all xfail. */
/***********/
typedef int foo;
foo intfoo (afoo)
{
return (afoo * 2);
}
/***********/
int main ()

View File

@ -31,9 +31,17 @@ set prms_id 0
set bug_id 0
set testfile "ptype"
set srcfile ${testfile}.c
set srcfile0 ${testfile}.c
set srcfile1 ${testfile}1.c
set binfile ${objdir}/${subdir}/${testfile}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
if { [gdb_compile "${srcdir}/${subdir}/${srcfile0}" "${binfile}0.o" object {debug}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${binfile}1.o" object {debug}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
if { [gdb_compile "${binfile}0.o ${binfile}1.o" "${binfile}" executable {debug}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
@ -574,6 +582,18 @@ ptype_maybe_prototyped "ffptr" "int (*(*)(char))(short int)" \
ptype_maybe_prototyped "fffptr" "int (*(*(*)(char))(short int))(long int)" \
"int (*(*(*)())())()"
# Test printing type of typedefs in different scopes, with same name
# but different type.
gdb_test "list intfoo" ""
gdb_test "ptype foo" "type = int" "ptype foo typedef after first list of intfoo"
gdb_test "list charfoo" ""
gdb_test "ptype foo" "type = char" "ptype foo typedef after first list of charfoo"
gdb_test "list intfoo" ""
gdb_test "ptype foo" "type = int" "ptype foo typedef after second list of intfoo"
gdb_test "list charfoo" ""
gdb_test "ptype foo" "type = char" "ptype foo typedef after second list of charfoo"
# Test printing type of string constants and array constants, but
# requires a running process. These call malloc, and can take a long
# time to execute over a slow serial link, so increase the timeout.

View File

@ -0,0 +1,6 @@
typedef char foo;
foo charfoo (afoo)
{
return (afoo * 2);
}