diff options
author | David Carlton <carlton@bactrian.org> | 2003-03-03 18:48:31 +0000 |
---|---|---|
committer | David Carlton <carlton@bactrian.org> | 2003-03-03 18:48:31 +0000 |
commit | 6ece72dad9bbb3dda581c92d778c398e275ae7c0 (patch) | |
tree | 0e1f13583ab1d33dd4e6f3811937d1f02ce7623b | |
parent | 85ca1584136004492afd07a88af7fac1d24e2258 (diff) | |
download | gdb-6ece72dad9bbb3dda581c92d778c398e275ae7c0.zip gdb-6ece72dad9bbb3dda581c92d778c398e275ae7c0.tar.gz gdb-6ece72dad9bbb3dda581c92d778c398e275ae7c0.tar.bz2 |
2003-02-28 David Carlton <carlton@math.stanford.edu>
* gdb.c++/classes.exp (test_enums): KFAIL "ptype obj_with_enum"
with respect to PR c++/57.
KFAIL "print (ClassWithEnum::PrivEnum) 42" with respect to PR
c++/826.
Create "print ('ClassWithEnum::PrivEnum') 42"; KFAIL it with
respect to PR c++/57.
-rw-r--r-- | gdb/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/testsuite/gdb.c++/classes.exp | 30 |
2 files changed, 35 insertions, 4 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 21c071d..14b54f4 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,14 @@ 2003-03-03 David Carlton <carlton@math.stanford.edu> + * gdb.c++/classes.exp (test_enums): KFAIL "ptype obj_with_enum" + with respect to PR c++/57. + KFAIL "print (ClassWithEnum::PrivEnum) 42" with respect to PR + c++/826. + Create "print ('ClassWithEnum::PrivEnum') 42"; KFAIL it with + respect to PR c++/57. + +2003-03-03 David Carlton <carlton@math.stanford.edu> + * gdb.c++/templates.exp (do_tests): Convert the KFAILs with respect to PR c++/33 into FAILs. diff --git a/gdb/testsuite/gdb.c++/classes.exp b/gdb/testsuite/gdb.c++/classes.exp index 70a1bb4..3f398ac 100644 --- a/gdb/testsuite/gdb.c++/classes.exp +++ b/gdb/testsuite/gdb.c++/classes.exp @@ -657,23 +657,45 @@ proc test_enums {} { } # ptype on the object - # g++ is putting out the wrong debug info. This works with aCC - if {!$hp_aCC_compiler} {setup_xfail "*-*-*"} send_gdb "ptype obj_with_enum\n" gdb_expect { -re "type = class ClassWithEnum \\{\r\n\[ \t\]*public:\r\n\[ \t\]*(enum |)ClassWithEnum::PrivEnum priv_enum;\r\n\[ \t\]*int x;\r\n\\}\r\n$gdb_prompt $" { pass "ptype obj_with_enum" } + -re "type = class ClassWithEnum \\{\r\n\[ \t\]*public:\r\n\[ \t\]*(enum |)PrivEnum priv_enum;\r\n\[ \t\]*int x;.*\\}\r\n$gdb_prompt $" + { + # NOTE: carlton/2003-02-28: One could certainly argue that + # this output is acceptable: PrivEnum is a member of + # ClassWithEnum, so there's no need to explicitly qualify + # its name with "ClassWithEnum::". The truth, though, is + # that GDB is simply forgetting that PrivEnum is a member + # of ClassWithEnum, so we do that output for a bad reason + # instead of a good reason. Under stabs, we probably + # can't get this right; under DWARF-2, we can. + kfail "gdb/57" "ptype obj_with_enum" + } -re "$gdb_prompt $" { fail "ptype obj_with_enum" } timeout { fail "(timeout) ptype obj_with_enum" } } - # g++ is putting out the wrong debug info. This works with aCC - if {!$hp_aCC_compiler} {setup_xfail "*-*-*"} + # We'll do this test twice, because of a parser bug: see + # PR gdb/826. + send_gdb "print (ClassWithEnum::PrivEnum) 42\n" gdb_expect { -re "\\$\[0-9\]* = yellow.*$gdb_prompt $" { pass "print (ClassWithEnum::PrivEnum) 42" } + -re "A parse error in expression, near `42'.\r\n$gdb_prompt $" + { kfail "gdb/826" "print (ClassWithEnum::PrivEnum) 42" } -re "$gdb_prompt $" { fail "print (ClassWithEnum::PrivEnum) 42" } timeout { fail "(timeout) print (ClassWithEnum::PrivEnum) 42" } } + + send_gdb "print ('ClassWithEnum::PrivEnum') 42\n" + gdb_expect { + -re "\\$\[0-9\]* = yellow.*$gdb_prompt $" { pass "print ('ClassWithEnum::PrivEnum') 42" } + -re "No symbol \"ClassWithEnum::PrivEnum\" in current context.\r\n$gdb_prompt $" + { kfail "gdb/57" "print ('ClassWithEnum::PrivEnum') 42" } + -re "$gdb_prompt $" { fail "print ('ClassWithEnum::PrivEnum') 42" } + timeout { fail "(timeout) print ('ClassWithEnum::PrivEnum') 42" } + } } # |