]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.ada/packed_array_assign.exp
Update copyright year range in header of all files managed by GDB
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.ada / packed_array_assign.exp
CommitLineData
1d506c26 1# Copyright 2018-2024 Free Software Foundation, Inc.
2a62dfa9
JB
2#
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.
7#
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.
12#
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/>.
15
16load_lib "ada.exp"
17
74dcf082 18require allow_ada_tests
7a82e903 19
2a62dfa9
JB
20standard_ada_testfile tester
21
22if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
23 return -1
24}
25
26clean_restart ${testfile}
27
28runto "aggregates.run_test"
29
0057a7ee
TV
30set kfail_int128support_re \
31 "That operation is not available on integers of more than 8 bytes\\."
32
33set cmd \
34 [list \
35 "print pra := " \
36 "((packed_array_assign_x => 2," \
37 "packed_array_assign_y => 0," \
38 "packed_array_assign_w => 17)," \
39 "pr," \
40 "(packed_array_assign_x => 7," \
41 "packed_array_assign_y => 1," \
42 "packed_array_assign_w => 23))"]
43set cmd [join $cmd]
44set re \
45 [list \
46 " = \\(\\(packed_array_assign_w => 17," \
47 "packed_array_assign_x => 2," \
48 "packed_array_assign_y => 0\\)," \
49 "\\(packed_array_assign_w => 104," \
50 "packed_array_assign_x => 2," \
51 "packed_array_assign_y => 3\\)," \
52 "\\(packed_array_assign_w => 23," \
53 "packed_array_assign_x => 7," \
54 "packed_array_assign_y => 1\\)\\)"]
239e440d
TT
55
56# GNAT >= 12.0 has the needed fix here.
57set zeros_expected [expr {![test_compiler_info {gcc-1[2-9]-*}]}]
58set all_zeros \
59 [string_to_regexp "((packed_array_assign_w => 0, packed_array_assign_x => 0, packed_array_assign_y => 0), (packed_array_assign_w => 0, packed_array_assign_x => 0, packed_array_assign_y => 0), (packed_array_assign_w => 0, packed_array_assign_x => 0, packed_array_assign_y => 0))"]
60
0057a7ee
TV
61set re [join $re]
62gdb_test_multiple $cmd "value of pra" {
63 -re -wrap $re {
64 pass $gdb_test_name
65 }
66 -re -wrap $kfail_int128support_re {
67 kfail gdb/20991 $gdb_test_name
68 }
239e440d
TT
69 -re -wrap $all_zeros {
70 if {$zeros_expected} {
71 setup_kfail "GCC 12 needed" *-*-*
72 }
73 fail $gdb_test_name
74 }
0057a7ee
TV
75}
76
77set cmd "print pra(1) := pr"
78set re \
79 [list \
80 " = \\(packed_array_assign_w => 104," \
81 "packed_array_assign_x => 2," \
82 "packed_array_assign_y => 3\\)"]
83set re [join $re]
84gdb_test_multiple $cmd "" {
85 -re -wrap $re {
86 pass $gdb_test_name
87 }
88 -re -wrap $kfail_int128support_re {
89 kfail gdb/20991 $gdb_test_name
90 }
91}
92
93set cmd "print pra(1)"
94set re \
95 [list \
96 " = \\(packed_array_assign_w => 104," \
97 "packed_array_assign_x => 2," \
98 "packed_array_assign_y => 3\\)"]
99set re [join $re]
100gdb_test_multiple $cmd "" {
101 -re -wrap $re {
102 pass $gdb_test_name
103 }
104 -re -wrap $kfail_int128support_re {
105 kfail gdb/20991 $gdb_test_name
106 }
107}
4504bbde
TT
108
109gdb_test "print npr := (q000 => 3, r000 => (packed_array_assign_x => 6, packed_array_assign_y => 1, packed_array_assign_w => 117))" \
ba3e70b0
KS
110 " = \\(q000 => 3, r000 => \\(packed_array_assign_w => 117, packed_array_assign_x => 6, packed_array_assign_y => 1\\)\\)" \
111 "value of npr"