[Ada] print null array pointer as `0x0' rather than `(null)'
authorJoel Brobecker <brobecker@gnat.com>
Wed, 29 Dec 2010 08:02:59 +0000 (08:02 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Wed, 29 Dec 2010 08:02:59 +0000 (08:02 +0000)
commit9e87a40907128affbb3c7bbfe2bee68fdd34fa0a
tree8c57328ff8022d04aa7ed94bc254017b77951e5a
parent720d1a4025df48e7f8fd6426e4f518c02ad3208a
[Ada] print null array pointer as `0x0' rather than `(null)'

Trying to print a variable defined as an access to an unconstrained
array:

       type String_Access is access String;
       S1 : String_Access;

If that variable is null, then GDB prints its value in an odd way:

    (gdb) print S1
    $1 = (string_bug.string_access) (null)
                                    ^^^^^^

This patch changes the debugger behavior to print the pointer using
the same output we'd use for any null pointer:

    (gdb) print S1
    $1 = (string_bug.string_access) 0x0

It also adds an assert, helping us verify an assumption.

gdb/ChangeLog:

        * ada-valprint.c (ada_val_print_1): Print null array pointers as
        `0x0' rather than `(null)'.  Add assertion.

gdb/testsuite/ChangeLog:

        * gdb.ada/arrayptr/foo.adb: Add new local variable Null_String.
        * gdb.ada/arrayptr.exp: Add test printing that new variable.
gdb/ChangeLog
gdb/ada-valprint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/arrayptr.exp
gdb/testsuite/gdb.ada/arrayptr/foo.adb