diff options
author | Joel Brobecker <brobecker@gnat.com> | 2007-01-05 05:56:37 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2007-01-05 05:56:37 +0000 |
commit | 51679ba97622b97e6ab6d519c89c5475581ec31c (patch) | |
tree | 8a12f0a468e70f14a4a47320f771c50d69bc7de4 /gdb | |
parent | fa4028e95595b8aa602fa73aa47e592405f0397b (diff) | |
download | fsf-binutils-gdb-51679ba97622b97e6ab6d519c89c5475581ec31c.zip fsf-binutils-gdb-51679ba97622b97e6ab6d519c89c5475581ec31c.tar.gz fsf-binutils-gdb-51679ba97622b97e6ab6d519c89c5475581ec31c.tar.bz2 |
* gdb.base/nofield.c: New file.
* gdb.base/nofield.exp: New testcase.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/nofield.c | 43 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/nofield.exp | 49 |
3 files changed, 97 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1242f99..945bfe5 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-02-05 Joel Brobecker <brobecker@adacore.com> + + * gdb.base/nofield.c: New file. + * gdb.base/nofield.exp: New testcase. + 2007-01-05 Nick Roberts <nickrob@snap.net.nz> * gdb.mi/mi-var-cp.exp: New test for references to pointers. diff --git a/gdb/testsuite/gdb.base/nofield.c b/gdb/testsuite/gdb.base/nofield.c new file mode 100644 index 0000000..d4501b3 --- /dev/null +++ b/gdb/testsuite/gdb.base/nofield.c @@ -0,0 +1,43 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2007 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Please email any bugs, comments, and/or additions to this file to: + bug-gdb@prep.ai.mit.edu */ + +struct empty {}; +union empty_union {}; + +struct not_empty +{ + void *e; + void *u; +}; + +int +main (void) +{ + struct empty e = {}; + union empty_union u; + struct not_empty n = {0, 0}; + + n.e = &e; + n.u = &u; + + return 0; +} + diff --git a/gdb/testsuite/gdb.base/nofield.exp b/gdb/testsuite/gdb.base/nofield.exp new file mode 100644 index 0000000..1769503 --- /dev/null +++ b/gdb/testsuite/gdb.base/nofield.exp @@ -0,0 +1,49 @@ +# Copyright 2007 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA + +if $tracelevel { + strace $tracelevel +} + +set testfile "nofield" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { + untested "Couldn't compile ${srcfile}" + return -1 +} + +set eol "\[\r\n\]+" +set sp "\[ \t\]*" + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +gdb_test "ptype struct not_empty" \ + "type = struct not_empty {$eol${sp}void \\*e;$eol${sp}void \\*u;$eol}" \ + "ptype struct not_empty" + +gdb_test "ptype struct empty" \ + "type = struct empty {$eol$sp<no data fields>$eol}" \ + "ptype struct empty" + +gdb_test "ptype union empty_union" \ + "type = union empty_union {$eol$sp<no data fields>$eol}" \ + "ptype union empty_union" + |