[testsuite/Ada] Add testing of access to packed arrays.

This patch adds some tests that evidence a regression fixed by
the following patch from Pedro Alves:

    [PATCH] ada-lang.c:coerce_unspec_val_to_type: Preserve laziness
    http://www.sourceware.org/ml/gdb-patches/2013-07/msg00178.html

gdb/testsuite/ChangeLog:

        * gdb.ada/arrayptr/foo.adb: Add some code defining an access
        to a packed array.
        * gdb.ada/arrayptr.exp: Add a few tests using that new access
        to packed array.
This commit is contained in:
Joel Brobecker 2013-07-10 00:35:01 +00:00
parent eca07816f8
commit 51b8642693
2 changed files with 17 additions and 0 deletions

View file

@ -45,3 +45,9 @@ gdb_test "print arr_ptr (3..4)" "= \\(3 => 23, 24\\)"
gdb_test "ptype string_access" "= access array \\(<>\\) of character"
gdb_test "print pa_ptr.all" \
" = \\(10, 20, 30, 40, 50, 60, 62, 63, -23, 42\\)"
gdb_test "print pa_ptr(3)" " = 30"
gdb_test "print pa_ptr.all(3)" " = 30"

View file

@ -26,8 +26,19 @@ procedure Foo is
type Little_Array_Ptr is access all Little_Array;
Arr_Ptr: Little_Array_Ptr :=
new Little_Array'(21, 22, 23, 24, 25, 26, 27, 28, 29, 30);
-- Same as above, but with a packed array.
type Small is range -64 .. 63;
for Small'Size use 7;
type Packed_Array is array (1..10) of Small;
pragma Pack (Packed_Array);
type Packed_Array_Ptr is access Packed_Array;
PA_Ptr : Packed_Array_Ptr
:= new Packed_Array'(10, 20, 30, 40, 50, 60, 62, 63, -23, 42);
begin
Do_Nothing (String_P'Address); -- STOP
Do_Nothing (Null_String'Address);
Do_Nothing (Arr_Ptr'Address);
Do_Nothing (PA_Ptr'Address);
end Foo;