1 # Copyright 2018-2024 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/>.
18 require allow_ada_tests
20 standard_ada_testfile tester
22 if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
26 clean_restart ${testfile}
28 runto "aggregates.run_test"
30 set kfail_int128support_re \
31 "That operation is not available on integers of more than 8 bytes\\."
36 "((packed_array_assign_x => 2," \
37 "packed_array_assign_y => 0," \
38 "packed_array_assign_w => 17)," \
40 "(packed_array_assign_x => 7," \
41 "packed_array_assign_y => 1," \
42 "packed_array_assign_w => 23))"]
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\\)\\)"]
56 # GNAT >= 12.0 has the needed fix here.
57 set zeros_expected [gnat_version_compare < 12]
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))"]
62 gdb_test_multiple $cmd "value of pra" {
66 -re -wrap $kfail_int128support_re {
67 kfail gdb/20991 $gdb_test_name
69 -re -wrap $all_zeros {
70 if {$zeros_expected} {
71 setup_kfail "GCC 12 needed" *-*-*
77 set cmd "print pra(1) := pr"
80 " = \\(packed_array_assign_w => 104," \
81 "packed_array_assign_x => 2," \
82 "packed_array_assign_y => 3\\)"]
84 gdb_test_multiple $cmd "" {
88 -re -wrap $kfail_int128support_re {
89 kfail gdb/20991 $gdb_test_name
93 set cmd "print pra(1)"
96 " = \\(packed_array_assign_w => 104," \
97 "packed_array_assign_x => 2," \
98 "packed_array_assign_y => 3\\)"]
100 gdb_test_multiple $cmd "" {
104 -re -wrap $kfail_int128support_re {
105 kfail gdb/20991 $gdb_test_name
109 gdb_test "print npr := (q000 => 3, r000 => (packed_array_assign_x => 6, packed_array_assign_y => 1, packed_array_assign_w => 117))" \
110 " = \\(q000 => 3, r000 => \\(packed_array_assign_w => 117, packed_array_assign_x => 6, packed_array_assign_y => 1\\)\\)" \