diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-01-13 18:57:01 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-01-13 18:57:01 +0000 |
commit | 5b12a61c763421f05d233ebcce94d96536b5c5d4 (patch) | |
tree | 9dcece33b9b32127276554e6b48baa2c434ec80a /gdb/testsuite | |
parent | 57b3c00c27e8492b2f8342b38e2301e710e5fabf (diff) | |
download | gdb-5b12a61c763421f05d233ebcce94d96536b5c5d4.zip gdb-5b12a61c763421f05d233ebcce94d96536b5c5d4.tar.gz gdb-5b12a61c763421f05d233ebcce94d96536b5c5d4.tar.bz2 |
gdb/
* parse.c (parse_exp_in_context): New variable inner_chain. Call
make_cleanup_restore_current_language. Call set_language. Move
OLD_CHAIN and INNER_CHAIN cleanups.
* utils.c (do_restore_current_language)
(make_cleanup_restore_current_language): New functions.
* utils.h (make_cleanup_restore_current_language): New declaration.
gdb/testsuite/
* gdb.cp/parse-lang.cc: New file.
* gdb.cp/parse-lang.exp: New file.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/parse-lang.cc | 40 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/parse-lang.exp | 31 |
3 files changed, 76 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3e366d9..717ea18 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2013-01-13 Jan Kratochvil <jan.kratochvil@redhat.com> + * gdb.cp/parse-lang.cc: New file. + * gdb.cp/parse-lang.exp: New file. + +2013-01-13 Jan Kratochvil <jan.kratochvil@redhat.com> + * gdb.mi/mi-fullname-deleted.exp: Set srcfileabssubst and initdir. (set substitute-path): New test. (fullname present): Remove content. diff --git a/gdb/testsuite/gdb.cp/parse-lang.cc b/gdb/testsuite/gdb.cp/parse-lang.cc new file mode 100644 index 0000000..46af670 --- /dev/null +++ b/gdb/testsuite/gdb.cp/parse-lang.cc @@ -0,0 +1,40 @@ +/* Copyright 2013 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/>. */ + +class C +{ +public: + int v; + void m (); +}; + +void +C::m () +{ +} + +void +marker () +{ +} + +int +main () +{ + C c = { 42 }; + + c.m (); + marker (); +} diff --git a/gdb/testsuite/gdb.cp/parse-lang.exp b/gdb/testsuite/gdb.cp/parse-lang.exp new file mode 100644 index 0000000..c0051e9 --- /dev/null +++ b/gdb/testsuite/gdb.cp/parse-lang.exp @@ -0,0 +1,31 @@ +# Copyright 2012-2013 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/>. + +standard_testfile .cc + +if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} { + return -1 +} + +# Place the breakpoint before inferior gets started. Then the breakpoint +# condition will be re-evaluated in non-C++ startup code. +gdb_breakpoint "C::m if v == 42" + +gdb_breakpoint "marker" + +# runto_main would delete the breakpoint. +gdb_run_cmd + +gdb_test "" {Breakpoint [0-9]+, C::m .*} "breakpoint hit" |