diff options
Diffstat (limited to 'gdb/testsuite/gdb.compile/cp-simple-template.exp')
-rw-r--r-- | gdb/testsuite/gdb.compile/cp-simple-template.exp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.compile/cp-simple-template.exp b/gdb/testsuite/gdb.compile/cp-simple-template.exp new file mode 100644 index 00000000000..7261eed332a --- /dev/null +++ b/gdb/testsuite/gdb.compile/cp-simple-template.exp @@ -0,0 +1,79 @@ +# Copyright 2016 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/>. + +# (Very) simple template tests. + +load_lib compile-support.exp + +standard_testfile .cc + +if {[skip_cplus_tests]} { + untested "skipping C++ tests" + return +} + +if {[prepare_for_testing $testfile $testfile $srcfile \ + {debug nowarnings c++}]} { + return -1 +} + +if {![runto_main]} { + return -1 +} + +if {[skip_compile_feature_tests]} { + untested \ + "compile command not supported (could not find libcc1 shared library?)" + return -1 +} + +gdb_breakpoint [gdb_get_line_number "break here" $srcfile] +gdb_continue_to_breakpoint "testing location" + +CompileExpression::new "var" +CompileExpression::test "mytemplate<int, 1> ()" -1 +CompileExpression::test "mytemplate<int, 1> (1)" 2 +CompileExpression::test "mytemplate<0> ()" 0 +CompileExpression::test "mytemplate ()" 100 +CompileExpression::test "a.tempmethod ()" {(20|{value = 20})} \ + -print {xfail *-*-* gcc/debug/49348} \ + -value {xfail *-*-* gcc/debug/49348} +CompileExpression::test "a.tempmethod<A> ()" {(20|{value = 20})} +CompileExpression::test "a.tempmethod<int> ()" -20 +CompileExpression::test "defaultvals ()" {(10|{value = 10})} +CompileExpression::test "defaultvals<int, 20> ()" 20 +CompileExpression::test "deduct (1234)" 1234 +CompileExpression::test "o + 3" {(-33|{v_ = 33})} +CompileExpression::test "mod_test (i)" 1 +CompileExpression::test "mod_test (cpi)" 2 +CompileExpression::test "mod_test (cpci)" 3 +CompileExpression::test "cddd.get1 ()" {(-30|{v_ = 30})} +CompileExpression::test "cddd.get2 ()" 107 +CompileExpression::test "cddd.get3 ()" 3 +CompileExpression::test "cdd.get1 ()" 100 +CompileExpression::test "cdd.get2 ()" 107 +CompileExpression::test "cdd.get3 ()" 3 +CompileExpression::test "cd.get1 ()" 101 +CompileExpression::test "cd.get2 ()" {107( 'k')?} +CompileExpression::test "cd.get3 ()" 3 +CompileExpression::test "c.get1 ()" 102 +CompileExpression::test "c.get2 ()" {107( 'k')?} +CompileExpression::test "c.get3 ()" 12 + +# Some explicit tests that don't fit neatly into CompileExpression (yet) +gdb_test "compile print ret_test<char>()" \ + [string_to_regexp {= (const char **) 0x0}] +gdb_test "compile print ret2_test<char>()" \ + [string_to_regexp {= (const char * const *) 0x0}] |