diff options
author | Keith Seitz <keiths@redhat.com> | 2011-10-14 20:22:50 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2011-10-14 20:22:50 +0000 |
commit | 6501c2fce12bc44b5759a33c2c7259cfdb4169e1 (patch) | |
tree | 98b44c2b3f19b5ed2e2b24a92883083bd6c53e4b /gdb | |
parent | da096638ca5fcd2fdb2ff8aff9e545c9b0cee478 (diff) | |
download | gdb-6501c2fce12bc44b5759a33c2c7259cfdb4169e1.zip gdb-6501c2fce12bc44b5759a33c2c7259cfdb4169e1.tar.gz gdb-6501c2fce12bc44b5759a33c2c7259cfdb4169e1.tar.bz2 |
PR c++/13225
* gdb.cp/converts.cc (foo3_1): New function.
(foo3_2): New functions.
* gdb.cp/converts.exp: Add tests for int to pointer conversion
and null pointer conversions of integer constant zero.
Add test to check if all arguments are checked for incompatible
conversion BADNESS.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/converts.cc | 9 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/converts.exp | 27 |
3 files changed, 46 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2786a53..1de5d3c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2011-10-14 Keith Seitz <keiths@redhat.com> + + PR c++/13225 + * gdb.cp/converts.cc (foo3_1): New function. + (foo3_2): New functions. + * gdb.cp/converts.exp: Add tests for int to pointer conversion + and null pointer conversions of integer constant zero. + Add test to check if all arguments are checked for incompatible + conversion BADNESS. + 2011-10-14 Tom Tromey <tromey@redhat.com> * gdb.threads/attachstop-mt.exp: Add $srcfile to the linespecs. diff --git a/gdb/testsuite/gdb.cp/converts.cc b/gdb/testsuite/gdb.cp/converts.cc index 34b6927..26a45f5 100644 --- a/gdb/testsuite/gdb.cp/converts.cc +++ b/gdb/testsuite/gdb.cp/converts.cc @@ -23,6 +23,10 @@ int foo2_2 (char[][1]) {return 22;} int foo2_3 (char *[]) {return 23;} int foo2_4 (int *[]) {return 24;} +int foo3_1 (int a, const char **b) { return 31; } +int foo3_2 (int a, int b) { return 32; } +int foo3_2 (int a, const char **b) { return 320; } + int main() { @@ -53,5 +57,10 @@ int main() foo2_2 (ba); // ..array of arrays foo2_3 (b); // ..array of pointers foo2_4 ((int**)b); // ..array of wrong pointers + + foo3_1 (0, 0); + foo3_2 (0, static_cast<char const**> (0)); + foo3_2 (0, 0); + return 0; // end of main } diff --git a/gdb/testsuite/gdb.cp/converts.exp b/gdb/testsuite/gdb.cp/converts.exp index 3f3b3c8..b6a2ad3 100644 --- a/gdb/testsuite/gdb.cp/converts.exp +++ b/gdb/testsuite/gdb.cp/converts.exp @@ -49,3 +49,30 @@ gdb_test "p foo2_1 (b)" "= 21" "pointer pointer to pointer pointer" gdb_test "p foo2_2 (b)" "Cannot resolve.*" "pointer pointer to array of arrays" gdb_test "p foo2_3 (b)" "= 23" "pointer pointer to array of pointers" gdb_test "p foo2_4 (b)" "Cannot resolve.*" "pointer pointer to array of wrong pointers" + +gdb_test "p foo3_1 ((char *) 0, ta)" "Cannot resolve.*" \ + "check all parameters for badness" + +# Tests for null pointer conversion +global gdb_prompt +set nl {[\r\n]+} +set t "null pointer conversion" +gdb_test_multiple "p foo3_1 (0, 0)" $t { + -re "warning: Using non-standard conversion.*$nl$gdb_prompt $" { + fail "$t (warning issued)" + } + + -re "Cannot resolve function foo3_1 to any overloaded instance$nl$gdb_prompt $" { + fail "$t (conversion failed)" + } + + -re "\\$\[0-9\]+ = 31$nl$gdb_prompt $" { + pass $t + } +} +gdb_test "p foo3_1 (0, 1)" \ + "Cannot resolve function foo3_1 to any overloaded instance" +gdb_test "p foo3_1 (0, (const char**) 1)" " = 31" +gdb_test "p foo3_2 (0, 0)" "= 32" +gdb_test "p foo3_2 (0, (char const**) 0)" " = 320" + |