Fix segfault when printing short_integer'last.
authorJoel Brobecker <brobecker@gnat.com>
Thu, 12 Mar 2009 23:17:33 +0000 (23:17 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Thu, 12 Mar 2009 23:17:33 +0000 (23:17 +0000)
        * ada-lang.c (ada_find_any_type): Search in the primitive types
        if a symbol could not be found.

gdb/ChangeLog
gdb/ada-lang.c

index 0ae2a976de1bf48d767c0e99b6c5c2331ca7319d..11058531d93e81f78b3a47a85cd0a979511e21fc 100644 (file)
@@ -1,3 +1,10 @@
+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
index fbcc32ad2fc877822c9cbd213b206d27a7674c25..12ee5cf630e0c9dc74e9113dc57635732f53ff39 100644 (file)
@@ -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