*** a/gdb/dwarf2read.c.orig 2010-02-19 17:36:48.000000000 -0500 --- b/gdb/dwarf2read.c 2010-02-19 17:37:37.000000000 -0500 *************** read_partial_die (struct partial_die_inf *** 7366,7371 **** --- 7366,7375 ---- break; } break; + case DW_AT_MIPS_linkage_name: + if (cu->language == language_ada) + part_die->name = DW_STRING (&attr); + break; case DW_AT_comp_dir: if (part_die->dirname == NULL) part_die->dirname = DW_STRING (&attr); *************** dwarf2_canonicalize_name (char *name, st *** 9928,9936 **** static char * dwarf2_name (struct die_info *die, struct dwarf2_cu *cu) { ! struct attribute *attr; ! attr = dwarf2_attr (die, DW_AT_name, cu); if (!attr || !DW_STRING (attr)) return NULL; --- 9932,9944 ---- static char * dwarf2_name (struct die_info *die, struct dwarf2_cu *cu) { ! struct attribute *attr = NULL; ! ! if (cu->language == language_ada) ! attr = dwarf2_attr (die, DW_AT_MIPS_linkage_name, cu); ! if (!attr) ! attr = dwarf2_attr (die, DW_AT_name, cu); if (!attr || !DW_STRING (attr)) return NULL;