Index: gdb/testsuite/gdb.cp/debug-expr.exp |
diff --git a/gdb/testsuite/gdb.cp/debug-expr.exp b/gdb/testsuite/gdb.cp/debug-expr.exp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..92d146eece2d383750b4c8b8b244db7722404f82 |
--- /dev/null |
+++ b/gdb/testsuite/gdb.cp/debug-expr.exp |
@@ -0,0 +1,43 @@ |
+# 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/>. |
+ |
+# Test "set debug expr 1" on c++ expressions. |
+ |
+if { [skip_cplus_tests] } { continue } |
+ |
+gdb_start |
+gdb_test_no_output "set language c++" |
+gdb_test_no_output "set debug expression 1" |
+ |
+# Test whether the expression debug machinery accepts the expression. |
+ |
+proc test_debug_expr { cmd output } { |
+ global gdb_prompt |
+ |
+ gdb_test_multiple $cmd "" { |
+ -re ".*Invalid expression.*\r\n$gdb_prompt $" { |
+ fail $cmd |
+ } |
+ -re ".*\[\r\n\]$output\r\n$gdb_prompt $" { |
+ pass $cmd |
+ } |
+ } |
+} |
+ |
+set void_star_zero_regex "\[$\]$decimal = \\(void \[*\]\\) 0x0" |
+ |
+test_debug_expr "print static_cast<void*>(0)" "$void_star_zero_regex" |
+test_debug_expr "print reinterpret_cast<void*>(0)" "$void_star_zero_regex" |
+test_debug_expr "print dynamic_cast<void*>(0)" "$void_star_zero_regex" |