From 85feb311d32bf996c4da799a89be375b31d1b3e7 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Tue, 10 Nov 2009 22:17:06 +0000 Subject: [PATCH] * gdb.cp/overload.exp: Add tests for resolving overloaded methods in expression parsing/evaluation. --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.cp/overload.exp | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index f00932aa49a..f17187d8c3c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-11-09 Keith Seitz + + * gdb.cp/overload.exp: Add tests for resolving overloaded + methods in expression parsing/evaluation. + 2009-11-10 Daniel Jacobowitz * lib/gdb.exp (default_gdb_version): Use --version instead of diff --git a/gdb/testsuite/gdb.cp/overload.exp b/gdb/testsuite/gdb.cp/overload.exp index 24025a2ba32..deab2f01fa4 100644 --- a/gdb/testsuite/gdb.cp/overload.exp +++ b/gdb/testsuite/gdb.cp/overload.exp @@ -312,3 +312,24 @@ gdb_test "print overloadNamespace(dummyInstance)" ".\[0-9\]* = 2" "print overloa # I wonder what this is for? gdb_test "print intToChar(1)" "\\$\[0-9\]+ = 297" + +# Test expression evaluation with overloaded methods +gdb_test "print foo::overload1arg" \ + "non-unique member `overload1arg' requires type instantiation" \ + "print foo::overload1arg" + +gdb_test "print foo::overload1arg(char***)" \ + "no member function matches that type instantiation" \ + "print foo::overload1arg(char***)" + +gdb_test "print foo::overload1arg(void)" \ + "\\$$decimal = {int \\(foo \\* const\\)} $hex " \ + "print foo::overload1arg(void)" + +foreach t [list char "signed char" "unsigned char" "short" \ + "unsigned short" int "unsigned int" long "unsigned long" \ + float double] { + gdb_test "print foo::overload1arg($t)" \ + "\\$$decimal = {int \\(foo \\* const, $t\\)} $hex " \ + "print foo::overload1arg($t)" +} -- 2.30.2