* gdb.cp/overload.exp: Add tests for resolving overloaded
authorKeith Seitz <keiths@redhat.com>
Tue, 10 Nov 2009 22:17:06 +0000 (22:17 +0000)
committerKeith Seitz <keiths@redhat.com>
Tue, 10 Nov 2009 22:17:06 +0000 (22:17 +0000)
methods in expression parsing/evaluation.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.cp/overload.exp

index f00932a..f17187d 100644 (file)
@@ -1,3 +1,8 @@
+2009-11-09  Keith Seitz  <keiths@redhat.com>
+
+       * gdb.cp/overload.exp: Add tests for resolving overloaded
+       methods in expression parsing/evaluation.
+
 2009-11-10  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * lib/gdb.exp (default_gdb_version): Use --version instead of
index 24025a2..deab2f0 100644 (file)
@@ -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 <foo::overload1arg\\(\\)>" \
+    "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 <foo::overload1arg\\($t\\)>" \
+       "print foo::overload1arg($t)"
+}