diff options
author | Andrew Stubbs <ams@codesourcery.com> | 2015-10-15 16:54:37 +0100 |
---|---|---|
committer | Andrew Stubbs <ams@codesourcery.com> | 2015-10-19 11:15:21 +0100 |
commit | b32b93c614de5ef1319eaa002e481094357018ff (patch) | |
tree | cba6aca81bbd204ffe29e1db0dc8d48266efc443 /gdb/testsuite/gdb.cp | |
parent | b615f43f531209705e12dcb01bd14d67029d3b07 (diff) | |
download | gdb-b32b93c614de5ef1319eaa002e481094357018ff.zip gdb-b32b93c614de5ef1319eaa002e481094357018ff.tar.gz gdb-b32b93c614de5ef1319eaa002e481094357018ff.tar.bz2 |
Robustify inherit.exp and virtbase.exp.
2015-10-19 Andrew Stubbs <ams@codesourcery.com>
gdb/testsuite/
* gdb.cp/inherit.exp (print g_vB, print g_vC, print g_vD,
print g_vE): Add new pass patterns.
* gdb.cp/virtbase.exp (print *this, print *(D *) e): Allow GDB to
print various symbol names for vptr fields.
Diffstat (limited to 'gdb/testsuite/gdb.cp')
-rw-r--r-- | gdb/testsuite/gdb.cp/inherit.exp | 24 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/virtbase.exp | 6 |
2 files changed, 27 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.cp/inherit.exp b/gdb/testsuite/gdb.cp/inherit.exp index 2369a1e..d269a3b 100644 --- a/gdb/testsuite/gdb.cp/inherit.exp +++ b/gdb/testsuite/gdb.cp/inherit.exp @@ -524,6 +524,12 @@ proc test_print_svi_classes { } { # gcc HEAD 2004-07-31 -gstabs+ pass $name } + -re "$vhn = \{<vA> = \{va = 3, vx = 4\}, $re_vbptr_3 = ${hex}( <\[^>]*>)?, vb = 5, vx = 6\}$nl$gdb_prompt $" { + # gcc HEAD 2015?+ + # the vptr is set to the address *after* the vtable, + # so the # symbol shown is unpredictable + pass "$name (symbols ignored)" + } } # Print all members of g_vC. @@ -552,6 +558,12 @@ proc test_print_svi_classes { } { # gcc HEAD 2004-07-31 -gstabs+ pass $name } + -re "$vhn = \{<vA> = \{va = 7, vx = 8\}, $re_vbptr_3 = ${hex}( <\[^>]*>)?, vc = 9, vx = 10\}$nl$gdb_prompt $" { + # gcc HEAD 2015?+ + # the vptr is set to the address *after* the vtable, + # so the symbol shown is unpredictable + pass "$name (symbols ignored)" + } } } @@ -623,6 +635,12 @@ proc test_print_mvi_classes { } { # gcc 3.3.2 -gstabs+ pass "$name" } + -re "$vhn = \{<vB> = \{<vA> = \{va = 19, vx = 20\}, $re_vbptr_3_vB = ${hex}( <\[^>]*>)?, vb = 21, vx = 22\}, <vC> = \{$re_vbptr_3_vC = ${hex}( <\[^>]*>)?, vc = 23, vx = 24\}, $re_vbptr_3_vD = ${hex}( <\[^>]*>)?, vd = 25, vx = 26\}$nl$gdb_prompt $" { + # gcc HEAD 2015?+ + # the vptr is set to the address *after* the vtable, + # so the symbol shown is unpredictable + pass "$name (symbols ignored)" + } } # Print all members of g_vE. @@ -650,6 +668,12 @@ proc test_print_mvi_classes { } { # gcc HEAD 2004-07-31 -gstabs+ pass $name } + -re "$vhn = \{<vD> = \{<vB> = \{<vA> = \{va = 0, vx = 0\}, $re_vbptr_3_vB = ${hex}( <\[^>]*>)?, vb = 0, vx = 0\}, <vC> = \{$re_vbptr_3_vC = ${hex}( <\[^>]*>)?, vc = 0, vx = 0\}, $re_vbptr_3_vD = ${hex}( <\[^>]*>)?, vd = 0, vx = 0\}, $re_vbptr_3_vE = ${hex}( <\[^>]*>)?, ve = 27, vx = 28\}$nl$gdb_prompt $" { + # gcc HEAD 2015?+ + # the vptr is set to the address *after* the vtable, + # so the symbol shown is unpredictable + pass "$name (symbols ignored)" + } } } diff --git a/gdb/testsuite/gdb.cp/virtbase.exp b/gdb/testsuite/gdb.cp/virtbase.exp index 2033d56..0d1bfa2 100644 --- a/gdb/testsuite/gdb.cp/virtbase.exp +++ b/gdb/testsuite/gdb.cp/virtbase.exp @@ -33,7 +33,7 @@ gdb_continue_to_breakpoint "first breakpoint" # In PR 11226, we failed to print x correctly in the "print *this" # case. -gdb_test "print *this" " = {<mc::Base> = {x = 2}, _vptr.Middle = $hex, y = 3}" +gdb_test "print *this" " = {<mc::Base> = {x = 2}, _vptr.Middle = ${hex}( <\[^>]*>)?, y = 3}" gdb_test "print x" " = 2" "print x in get_y" gdb_breakpoint [gdb_get_line_number "breakpoint 2"] @@ -46,7 +46,7 @@ gdb_breakpoint [gdb_get_line_number "breakpoint 3"] gdb_continue_to_breakpoint "third breakpoint" # In PR 9629, we failed to print v correctly here. -gdb_test "print *(D *) e" " = {<C> = {v = 11}, _vptr.D = $hex}" +gdb_test "print *(D *) e" " = {<C> = {v = 11}, _vptr.D = ${hex}( <\[^>]*>)?}" # A regression test reported to Red Hat bugzilla, see: # https://bugzilla.redhat.com/show_bug.cgi?id=560741 @@ -70,5 +70,5 @@ gdb_test "print $" \ " = \\(Virtual \\*\\) $hex <virtual_o>" \ "print same pointer from history value" gdb_test "print *$$" \ - " = \\(Virtual\\) {<VirtualMiddleA> = {<VirtualBase> = {_vptr.VirtualBase = ${hex}( <vtable for Virtual.*>)?, x = 0}, _vptr.VirtualMiddleA = ${hex}( <vtable for Virtual.*>)?, y = \\{0 <repeats 300 times>\\}}, <VirtualMiddleB> = {_vptr.VirtualMiddleB = ${hex}( <vtable for Virtual.*>)?, y = 0}, _vptr.Virtual = ${hex}( <vtable for Virtual.*>)?, z = 0}" \ + " = \\(Virtual\\) {<VirtualMiddleA> = {<VirtualBase> = {_vptr.VirtualBase = ${hex}( <\[^>]*>)?, x = 0}, _vptr.VirtualMiddleA = ${hex}( <\[^>]*>)?, y = \\{0 <repeats 300 times>\\}}, <VirtualMiddleB> = {_vptr.VirtualMiddleB = ${hex}( <\[^>]*>)?, y = 0}, _vptr.Virtual = ${hex}( <\[^>]*>)?, z = 0}" \ "print whole pointed-to object, starting from the virtual base pointer" |