~ubuntu-branches/debian/jessie/gdb/jessie

« back to all changes in this revision

Viewing changes to gdb/testsuite/gdb.cp/casts.exp

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Jacobowitz
  • Date: 2010-03-20 01:21:29 UTC
  • mfrom: (1.3.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20100320012129-t7h25y8zgr8c2369
Tags: 7.1-1
* New upstream release, including:
  - PIE support (Closes: #346409).
  - C++ improvements, including static_cast<> et al, namespace imports,
    and bug fixes in printing virtual base classes.
  - Multi-program debugging.  One GDB can now debug multiple programs
    at the same time.
  - Python scripting improvements, including gdb.parse_and_eval.
  - Updated MIPS Linux signal frame layout (Closes: #570875).
  - No internal error stepping over _dl_debug_state (Closes: #569551).
* Update to Standards-Version: 3.8.4 (no changes required).
* Include more relevant (and smaller) docs in the gdbserver package
  (Closes: #571132).
* Do not duplicate documentation in gdb64, gdb-source, and libgdb-dev.
* Fix crash when switching into TUI mode (Closes: #568489).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright 2002, 2003, 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
 
1
# Copyright 2002, 2003, 2004, 2007, 2008, 2009, 2010
 
2
# Free Software Foundation, Inc.
2
3
 
3
4
# This program is free software; you can redistribute it and/or modify
4
5
# it under the terms of the GNU General Public License as published by
97
98
# Check compiler casting
98
99
gdb_test "print br" ".* = .B.* {<A> = {a = 42}, b = 1729}" \
99
100
    "let compiler cast base class reference to derived class reference"
 
101
 
 
102
 
 
103
# A few basic tests of "new" casts.
 
104
 
 
105
gdb_test "print const_cast<const B *> (b)" " = \\(const B \\*\\) $hex" \
 
106
    "basic test of const_cast"
 
107
 
 
108
gdb_test "print const_cast<void *> (0)" " = \\(void \\*\\) 0x0" \
 
109
    "const_cast of 0"
 
110
 
 
111
gdb_test "print static_cast<A *> (b)" " = \\(A \\*\\) $hex" \
 
112
    "basic test of static_cast"
 
113
 
 
114
gdb_test "print static_cast<A &> (*b)" " = \\(A \\&\\) @$hex: {a = 42}" \
 
115
    "static_cast to reference type"
 
116
 
 
117
gdb_test "print reinterpret_cast<A *> (b)" " = \\(A \\*\\) $hex" \
 
118
    "basic test of reinterpret_cast"
 
119
 
 
120
gdb_test "print reinterpret_cast<void> (b)" "Invalid reinterpret_cast" \
 
121
    "test invalid reinterpret_cast"
 
122
 
 
123
gdb_test "print reinterpret_cast<A &> (*b)" " = \\(A \\&\\) @$hex: {a = 42}" \
 
124
    "reinterpret_cast to reference type"
 
125
 
 
126
# Tests of dynamic_cast.
 
127
 
 
128
set nonzero_hex "0x\[0-9A-Fa-f\]\[0-9A-Fa-f\]+"
 
129
 
 
130
gdb_test "print dynamic_cast<void> (a)" \
 
131
    ".*must be a pointer or reference type" \
 
132
    "invalid dynamic_cast"
 
133
 
 
134
gdb_test "print dynamic_cast<void *> (0)" \
 
135
    " = \\(void \\*\\) 0x0" \
 
136
    "dynamic_cast of 0 to void*"
 
137
 
 
138
gdb_test "print dynamic_cast<Alpha *> (&derived)" \
 
139
    " = \\(Alpha \\*\\) $nonzero_hex" \
 
140
    "dynamic_cast simple upcast"
 
141
 
 
142
gdb_test "print dynamic_cast<Alpha *> (&doublyderived)" \
 
143
    " = \\(Alpha \\*\\) $nonzero_hex" \
 
144
    "dynamic_cast upcast to unique base"
 
145
 
 
146
gdb_test "print dynamic_cast<Alpha &> (derived)" \
 
147
    " = \\(Alpha \\&\\) @$nonzero_hex: {.* = $nonzero_hex}" \
 
148
    "dynamic_cast simple upcast to reference"
 
149
 
 
150
gdb_test "print dynamic_cast<Derived *> (ad)" \
 
151
    " = \\(Derived \\*\\) $nonzero_hex" \
 
152
    "dynamic_cast simple downcast"
 
153
 
 
154
gdb_test "print dynamic_cast<VirtuallyDerived *> (add)" \
 
155
    " = \\(VirtuallyDerived \\*\\) $nonzero_hex" \
 
156
    "dynamic_cast simple downcast to intermediate class"
 
157
 
 
158
gdb_test "print dynamic_cast<VirtuallyDerived *> (ad)" \
 
159
    " = \\(VirtuallyDerived \\*\\) 0x0" \
 
160
    "dynamic_cast to non-existing base"
 
161
 
 
162
gdb_test "print dynamic_cast<VirtuallyDerived &> (*ad)" \
 
163
    "dynamic_cast failed" \
 
164
    "dynamic_cast to reference to non-existing base"
 
165
 
 
166
gdb_test "print dynamic_cast<DoublyDerived *> (add)" \
 
167
    " = \\(DoublyDerived \\*\\) $nonzero_hex" \
 
168
    "dynamic_cast unique downcast"
 
169
 
 
170
gdb_test "print dynamic_cast<Gamma *> (add)" \
 
171
    " = \\(Gamma \\*\\) $nonzero_hex" \
 
172
    "dynamic_cast to sibling"