2003-02-28 David Carlton <carlton@math.stanford.edu>
authorDavid Carlton <carlton@bactrian.org>
Mon, 3 Mar 2003 18:48:31 +0000 (18:48 +0000)
committerDavid Carlton <carlton@bactrian.org>
Mon, 3 Mar 2003 18:48:31 +0000 (18:48 +0000)
* 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.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.c++/classes.exp

index 21c071df8cb3012cc1e26aa290b20ea52de8029c..14b54f4c376c4c861ade73ad48118b55297ddb5c 100644 (file)
@@ -1,3 +1,12 @@
+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
index 70a1bb4d2f9aafc1a167b5c6a753d680a162d942..3f398acc5ecedef0e7aaf049d1fff67d74773a2f 100644 (file)
@@ -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" }
+    }
 }
 
 #