From 572abd81388d29a66a41e42fa2584a0bcb6cbd2a Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Thu, 12 Mar 2009 23:17:31 +0000 Subject: [PATCH] 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. --- gdb/ChangeLog | 7 +++++++ gdb/ada-lang.c | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0ae2a976d..11058531d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2009-03-12 Joel Brobecker + 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 + * 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 fbcc32ad2..12ee5cf63 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 -- 2.11.4.GIT