diff options
author | Joel Brobecker <brobecker@gnat.com> | 2012-03-14 01:39:12 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2012-03-14 01:39:12 +0000 |
commit | ccbb4f28f0454cf84b515c3122144f30f30d2f36 (patch) | |
tree | 0922bbd9299c1ac3fb50a3052ca89321189e141e /gdb | |
parent | d8a5d6ee2fdfd0e8a0a9cc8386a5d0b580372f52 (diff) | |
download | fsf-binutils-gdb-ccbb4f28f0454cf84b515c3122144f30f30d2f36.zip fsf-binutils-gdb-ccbb4f28f0454cf84b515c3122144f30f30d2f36.tar.gz fsf-binutils-gdb-ccbb4f28f0454cf84b515c3122144f30f30d2f36.tar.bz2 |
Testcase for: "ax-gdb: Do not treat enums and bools as integers".
gdb/testsuite/ChangeLog:
* gdb.base/enum_cond.c, gdb.base/enum_cond.exp: New testcase.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/enum_cond.c | 48 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/enum_cond.exp | 44 |
3 files changed, 96 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c05bcf4..f83a8ba 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2012-03-13 Joel Brobecker <brobecker@adacore.com> + * gdb.base/enum_cond.c, gdb.base/enum_cond.exp: New testcase. + +2012-03-13 Joel Brobecker <brobecker@adacore.com> + * gdb.ada/bp_range_type: New testcase. 2012-03-13 Doug Evans <dje@google.com> diff --git a/gdb/testsuite/gdb.base/enum_cond.c b/gdb/testsuite/gdb.base/enum_cond.c new file mode 100644 index 0000000..5c152a4 --- /dev/null +++ b/gdb/testsuite/gdb.base/enum_cond.c @@ -0,0 +1,48 @@ +/* This testcase is part of GDB, the GNU debugger. + Copyright 2012 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 3 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, see <http://www.gnu.org/licenses/>. */ + +enum EE +{ + VALUE = 1 +}; + +struct x +{ + unsigned char before; + enum EE e; + unsigned char after; +}; + + +int +call_me (struct x param) +{ + return param.e; +} + +int +main (void) +{ + struct x val; + + val.before = 0xff; + val.e = VALUE; + val.after = 0xff; + + call_me (val); + return 0; +} + diff --git a/gdb/testsuite/gdb.base/enum_cond.exp b/gdb/testsuite/gdb.base/enum_cond.exp new file mode 100644 index 0000000..5c041d9 --- /dev/null +++ b/gdb/testsuite/gdb.base/enum_cond.exp @@ -0,0 +1,44 @@ +# Copyright 2012 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 3 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, see <http://www.gnu.org/licenses/>. + +# This file is part of the gdb testsuite. It is intended to test that +# gdb can correctly print arrays with indexes for each element of the +# array. + +set testfile "enum_cond" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + +set opts [list debug additional_flags=-fshort-enums] +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $opts] != "" } { + untested "Could not compile ${srcfile}" + return -1 +} + +clean_restart $testfile + +if ![runto_main] then { + perror "could not run to main" + continue +} + +gdb_test "break call_me if param.e == 1" \ + "Breakpoint $decimal at $hex: file .*$srcfile, line $decimal\\." + +# Continue. We should hit our breakpoint... +gdb_test "continue" \ + "Breakpoint $decimal, call_me \\(param=\\.\\.\\.\\) at .*" \ + "continue to conditional breakpoint in call_me" + |