diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/ada-lang.c | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0ae2a97..1105853 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2009-03-12 Joel Brobecker <brobecker@adacore.com> + Fix segfault when printing short_integer'last. + + * ada-lang.c (ada_find_any_type): Search in the primitive types + if a symbol could not be found. + +2009-03-12 Joel Brobecker <brobecker@adacore.com> + * ada-tasks.c (task_states,long_task_states): Add new states Activating and Acceptor_Delay_Sleep. Update the description of state Acceptor_Sleep. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index fbcc32a..12ee5cf 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -6535,11 +6535,16 @@ struct type * ada_find_any_type (const char *name) { struct symbol *sym = ada_find_any_symbol (name); + struct type *type = NULL; if (sym != NULL) - return SYMBOL_TYPE (sym); + type = SYMBOL_TYPE (sym); - return NULL; + if (type == NULL) + type = language_lookup_primitive_type_by_name + (language_def (language_ada), current_gdbarch, name); + + return type; } /* Given NAME and an associated BLOCK, search all symbols for |