diff options
Diffstat (limited to 'gdb/value.c')
-rw-r--r-- | gdb/value.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gdb/value.c b/gdb/value.c index 7085ec1..89759b8 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -34,6 +34,7 @@ #include "gdb_assert.h" #include "regcache.h" #include "block.h" +#include "dfp.h" /* Prototypes for exported functions. */ @@ -1642,6 +1643,27 @@ value_from_double (struct type *type, DOUBLEST num) } struct value * +value_from_decfloat (struct type *expect_type, struct type *type, + gdb_byte decbytes[16]) +{ + struct value *val = allocate_value (type); + int len = TYPE_LENGTH (type); + + if (expect_type) + { + int expect_len = TYPE_LENGTH (expect_type); + char decstr[128]; + int real_len; + + decimal_to_string (decbytes, len, decstr); + decimal_from_string (decbytes, expect_len, decstr); + } + + memcpy (value_contents_raw (val), decbytes, len); + return val; +} + +struct value * coerce_ref (struct value *arg) { struct type *value_type_arg_tmp = check_typedef (value_type (arg)); |