1 # Copyright
2002-2022 Free Software Foundation
, Inc.
3 # This
program is free software
; you can redistribute it and
/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this
program.
If not
, see
<http
://www.gnu.org
/licenses
/>.
16 # Tests
for member data
17 #
2002-05-13 Benjamin Kosnik
<bkoz@redhat.com
>
19 # This file is part of the gdb testsuite
21 if { [skip_cplus_tests
] } { return }
24 # test running programs
29 if [get_compiler_info
"c++"] {
33 if {[prepare_for_testing
"failed to prepare" $testfile $srcfile {debug c++}]} {
37 if ![runto_main
] then {
38 perror
"couldn't run to breakpoint"
42 # First
, run to after we
've constructed all the gnu_obj_N's
:
44 gdb_breakpoint
[gdb_get_line_number
"first-constructs-done"]
45 gdb_continue_to_breakpoint
"end of first constructors"
49 # simple object
, const
bool
50 gdb_test
"print test1.test" "\\$\[0-9\]* = true" "simple object, const bool"
52 # simple object
, const
int
53 gdb_test
"print test1.key1" "\\$\[0-9\]* = 5" "simple object, const int"
56 gdb_test
"print test1.key2" "\\$\[0-9\]* = 4589" "simple object, long"
59 gdb_test
"print test1.value" "\\$\[0-9\]* = egyptian" "simple object, enum"
63 # derived template object
, base const
bool
64 gdb_test
"print test2.test" "\\$\[0-9\]* = true" "derived template object, base const bool"
66 # derived template object
, base const
int
67 gdb_test
"print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base const int"
69 # derived template object
, base long
70 gdb_test
"print test2.key2" "\\$\[0-9\]* = 7" "derived template object, base long"
72 # derived template object
, base enum
73 gdb_test
"print test2.value" "\\$\[0-9\]* = oriental" "derived template object, base enum"
75 # derived template object
, enum
76 gdb_test
"print test2.value_derived" "\\$\[0-9\]* = roman" "derived template object, derived enum"
80 # template object
, derived template data member
's base const bool
81 gdb_test "print test3.data.test" "\\$\[0-9\]* = true" "template object, const bool"
83 # template object, derived template data member's base const
int
84 gdb_test
"print test3.data.key1" "\\$\[0-9\]* = 5" "template object, const int"
86 # template object
, derived template data member
's base long
87 gdb_test "print test3.data.key2" "\\$\[0-9\]* = 7" "template object, long"
89 # template object, derived template data member's base enum
90 gdb_test
"print test3.data.value" "\\$\[0-9\]* = oriental" "template object, base enum"
92 # template object
, derived template data member
's enum
93 gdb_test "print test3.data.value_derived" "\\$\[0-9]\* = etruscan" "template object, derived enum"
95 # Now some tests for shadowing (see PR gdb/804):
97 gdb_breakpoint "C::marker"
98 gdb_continue_to_breakpoint "continue to shadow breakpoint"
100 gdb_test "print shadow" "\\$\[0-9]\* = 1" "shadowing member"
101 gdb_test "print ::shadow" "\\$\[0-9]\* = 0" "shadowed global variable"