diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/c-typeprint.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a98fde1..bff8559 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2010-10-18 Doug Evans <dje@google.com> + + * c-typeprint.c (c_type_print_base, case TYPE_CODE_TYPEDEF): Verify + assumptions of when this case happens. Print "<unnamed typedef>". + 2010-10-18 Tom Tromey <tromey@redhat.com> * valprint.c (val_print_string): Pass 'encoding' to diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c index 0fd077b..87f7b0d 100644 --- a/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c @@ -707,6 +707,13 @@ c_type_print_base (struct type *type, struct ui_file *stream, int show, switch (TYPE_CODE (type)) { case TYPE_CODE_TYPEDEF: + /* If we get here, the typedef doesn't have a name, and we couldn't + resolve TYPE_TARGET_TYPE. Not much we can do. */ + gdb_assert (TYPE_NAME (type) == NULL); + gdb_assert (TYPE_TARGET_TYPE (type) == NULL); + fprintf_filtered (stream, _("<unnamed typedef>")); + break; + case TYPE_CODE_ARRAY: case TYPE_CODE_PTR: case TYPE_CODE_MEMBERPTR: |