X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fvalops.c;h=de4544cd29fd650cb5e12ec0aab91a58262e0b60;hb=3b4b2f160d288b85a1379d24fd0f4de19062f3fd;hp=defc7d525a4bbc41f160d09f35866647d6633d2a;hpb=1841ee5d0300cf00022c8aadfe16725c5e86fe1d;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/valops.c b/gdb/valops.c index defc7d525a..de4544cd29 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -471,13 +471,18 @@ value_cast (struct type *type, struct value *arg2) gdb_byte dec[16]; if (code2 == TYPE_CODE_FLT) - decimal_from_floating (arg2, dec, dec_len, byte_order); + decimal_from_doublest (value_as_double (arg2), + dec, dec_len, byte_order); else if (code2 == TYPE_CODE_DECFLOAT) decimal_convert (value_contents (arg2), TYPE_LENGTH (type2), byte_order, dec, dec_len, byte_order); + /* The only option left is an integral type. */ + else if (TYPE_UNSIGNED (type2)) + decimal_from_ulongest (value_as_long (arg2), + dec, dec_len, byte_order); else - /* The only option left is an integral type. */ - decimal_from_integral (arg2, dec, dec_len, byte_order); + decimal_from_longest (value_as_long (arg2), + dec, dec_len, byte_order); return value_from_decfloat (to_type, dec); }