mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 06:17:47 +08:00

Testing with -fgnat-encodings=minimal showed that the Ada code failed to use the bit stride of an array when taking a slice. This patch fixes the oversight. gdb/ChangeLog 2020-11-04 Tom Tromey <tromey@adacore.com> * ada-lang.c (ada_value_slice_from_ptr): Use bit size. gdb/testsuite/ChangeLog 2020-11-04 Tom Tromey <tromey@adacore.com> * gdb.ada/array_of_variant.exp: New file. * gdb.ada/array_of_variant/p.adb: New file. * gdb.ada/array_of_variant/pck.ads: New file. * gdb.ada/array_of_variant/pck.adb: New file.
40 lines
1.2 KiB
Ada
40 lines
1.2 KiB
Ada
-- Copyright 2020 Free Software Foundation, Inc.
|
|
--
|
|
-- This program is free software; you can redistribute it and/or modify
|
|
-- it under the terms of the GNU General Public License as published by
|
|
-- the Free Software Foundation; either version 3 of the License, or
|
|
-- (at your option) any later version.
|
|
--
|
|
-- This program is distributed in the hope that it will be useful,
|
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
-- GNU General Public License for more details.
|
|
--
|
|
-- You should have received a copy of the GNU General Public License
|
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
with Pck; use Pck;
|
|
|
|
procedure P is
|
|
|
|
type Tag_T is (Unused, Object);
|
|
|
|
type Array_T is array (1 .. Five) of Integer;
|
|
|
|
type Payload_T (Tag : Tag_T := Unused) is
|
|
record
|
|
case Tag is
|
|
when Object =>
|
|
Values : Array_T := (others => 1);
|
|
when Unused =>
|
|
null;
|
|
end case;
|
|
end record;
|
|
|
|
Objects : array (1 .. 2) of Payload_T;
|
|
|
|
begin
|
|
Objects (1) := (Tag => Object, Values => (others => 2));
|
|
Do_Nothing (Objects'Address); -- START
|
|
end P;
|