Files
Tom Tromey 7ff5b9370f Use bit stride when taking slice of array
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.
2020-11-04 08:49:19 -07:00

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;