diff options
author | Per Bothner <per@bothner.com> | 1995-10-06 00:37:40 +0000 |
---|---|---|
committer | Per Bothner <per@bothner.com> | 1995-10-06 00:37:40 +0000 |
commit | 398f584f64021b362462a308c37db2e852c5ebd1 (patch) | |
tree | 61f3088b54aaee49f3525f0fa32807e5cb896ea6 /gdb/ch-valprint.c | |
parent | c700638ca7c1c0d0dd2fac7983b2d59ca7217099 (diff) | |
download | gdb-398f584f64021b362462a308c37db2e852c5ebd1.zip gdb-398f584f64021b362462a308c37db2e852c5ebd1.tar.gz gdb-398f584f64021b362462a308c37db2e852c5ebd1.tar.bz2 |
* values.c allocate_repeat_value): Allocate an array type, and
a value of that type; use that instead of setting VALUE_REPEATED.
* value.h (struct value): Remove fields repetitions and repeated.
(VALUE_REPEATED, VALUE_REPETITIONS): Removed, no longer used.
* c-valprint.c, ch-valprint.c, eval.c, printcmd.c, valops.c,
value.h, values.c: Simplify, since now VALUE_REPEATED is never used.
* valprint.c (value_print_array_elemen): Removed never-used function.
Diffstat (limited to 'gdb/ch-valprint.c')
-rw-r--r-- | gdb/ch-valprint.c | 75 |
1 files changed, 26 insertions, 49 deletions
diff --git a/gdb/ch-valprint.c b/gdb/ch-valprint.c index 120d8ad..695530b 100644 --- a/gdb/ch-valprint.c +++ b/gdb/ch-valprint.c @@ -574,65 +574,42 @@ chill_value_print (val, stream, format, pretty) int format; enum val_prettyprint pretty; { - /* A "repeated" value really contains several values in a row. - They are made by the @ operator. - Print such values as if they were arrays. */ + struct type *type = VALUE_TYPE (val); - if (VALUE_REPEATED (val)) - { - register unsigned int n = VALUE_REPETITIONS (val); - register unsigned int typelen = TYPE_LENGTH (VALUE_TYPE (val)); - fprintf_filtered (stream, "["); - /* Print arrays of characters using string syntax. */ - if (typelen == 1 && TYPE_CODE (VALUE_TYPE (val)) == TYPE_CODE_INT - && format == 0) - LA_PRINT_STRING (stream, VALUE_CONTENTS (val), n, 0); - else - { - value_print_array_elements (val, stream, format, pretty); - } - fprintf_filtered (stream, "]"); - return (n * typelen); - } - else - { - struct type *type = VALUE_TYPE (val); + /* If it is a pointer, indicate what it points to. - /* If it is a pointer, indicate what it points to. + Print type also if it is a reference. - Print type also if it is a reference. - - C++: if it is a member pointer, we will take care - of that when we print it. */ - if (TYPE_CODE (type) == TYPE_CODE_PTR || - TYPE_CODE (type) == TYPE_CODE_REF) + C++: if it is a member pointer, we will take care + of that when we print it. */ + if (TYPE_CODE (type) == TYPE_CODE_PTR || + TYPE_CODE (type) == TYPE_CODE_REF) + { + char *valaddr = VALUE_CONTENTS (val); + CORE_ADDR addr = unpack_pointer (type, valaddr); + if (TYPE_CODE (type) != TYPE_CODE_PTR || addr != 0) { - char *valaddr = VALUE_CONTENTS (val); - CORE_ADDR addr = unpack_pointer (type, valaddr); - if (TYPE_CODE (type) != TYPE_CODE_PTR || addr != 0) + int i; + char *name = TYPE_NAME (type); + if (name) + fputs_filtered (name, stream); + else if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID) + fputs_filtered ("PTR", stream); + else { - int i; - char *name = TYPE_NAME (type); - if (name) - fputs_filtered (name, stream); - else if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID) - fputs_filtered ("PTR", stream); - else - { - fprintf_filtered (stream, "("); - type_print (type, "", stream, -1); - fprintf_filtered (stream, ")"); - } fprintf_filtered (stream, "("); - i = val_print (type, valaddr, VALUE_ADDRESS (val), - stream, format, 1, 0, pretty); + type_print (type, "", stream, -1); fprintf_filtered (stream, ")"); - return i; } + fprintf_filtered (stream, "("); + i = val_print (type, valaddr, VALUE_ADDRESS (val), + stream, format, 1, 0, pretty); + fprintf_filtered (stream, ")"); + return i; } - return (val_print (type, VALUE_CONTENTS (val), - VALUE_ADDRESS (val), stream, format, 1, 0, pretty)); } + return (val_print (type, VALUE_CONTENTS (val), + VALUE_ADDRESS (val), stream, format, 1, 0, pretty)); } |