[Ada] Allow assignment to wide string.
authorJoel Brobecker <brobecker@gnat.com>
Wed, 24 Oct 2012 18:14:23 +0000 (18:14 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Wed, 24 Oct 2012 18:14:23 +0000 (18:14 +0000)
commitd99dcf51e1ace49b2e69fa72d2f9d0a048faa0de
treec45b465502ca40b2924cdb8d64638e44298e6b9e
parent3256027470cc5339e32600cd0d5900f3ce3344e7
[Ada] Allow assignment to wide string.

Given the following variable declaration...

   Www : Wide_String := "12345";

... this patch allows the following assignment to work:

   (gdb) set variable www := "qwert"

Without this patch, the debugger rejects the assignment because
the size of the array elements are different:

   (gdb) set www := "asdfg"
   Incompatible types in assignment

(on the lhs, we have an array of 2-bytes elements, and on the rhs,
we have a standard 1-byte string).

gdb/ChangeLog:

        * ada-lang.c (ada_same_array_size_p): New function.
        (ada_promote_array_of_integrals): New function.
        (coerce_for_assign): Add handling of arrays where the elements
        are integrals of a smaller size than the size of the target
        array element type.

gdb/testsuite/ChangeLog:

        * gdb.ada/set_wstr: New testcase.
gdb/ChangeLog
gdb/ada-lang.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/set_wstr.exp [new file with mode: 0644]
gdb/testsuite/gdb.ada/set_wstr/a.adb [new file with mode: 0644]
gdb/testsuite/gdb.ada/set_wstr/pck.adb [new file with mode: 0644]
gdb/testsuite/gdb.ada/set_wstr/pck.ads [new file with mode: 0644]