aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/ada-lang.c9
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