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/c-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/c-valprint.c')
-rw-r--r-- | gdb/c-valprint.c | 67 |
1 files changed, 22 insertions, 45 deletions
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c index f5866e2..042ac2f 100644 --- a/gdb/c-valprint.c +++ b/gdb/c-valprint.c @@ -456,56 +456,33 @@ c_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)) + /* If it is a pointer, indicate what it points to. + + 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) { - 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 + /* Hack: remove (char *) for char strings. Their + type is indicated by the quoted string anyway. */ + if (TYPE_CODE (type) == TYPE_CODE_PTR && + TYPE_NAME (type) == NULL && + TYPE_NAME (TYPE_TARGET_TYPE (type)) != NULL && + STREQ (TYPE_NAME (TYPE_TARGET_TYPE (type)), "char")) { - value_print_array_elements (val, stream, format, pretty); + /* Print nothing */ } - fprintf_filtered (stream, "}"); - return (n * typelen); - } - else - { - struct type *type = VALUE_TYPE (val); - - /* If it is a pointer, indicate what it points to. - - 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) + else { - /* Hack: remove (char *) for char strings. Their - type is indicated by the quoted string anyway. */ - if (TYPE_CODE (type) == TYPE_CODE_PTR && - TYPE_NAME (type) == NULL && - TYPE_NAME (TYPE_TARGET_TYPE (type)) != NULL && - STREQ (TYPE_NAME (TYPE_TARGET_TYPE (type)), "char")) - { - /* Print nothing */ - } - else - { - fprintf_filtered (stream, "("); - type_print (type, "", stream, -1); - fprintf_filtered (stream, ") "); - } + fprintf_filtered (stream, "("); + type_print (type, "", stream, -1); + fprintf_filtered (stream, ") "); } - 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)); } |