diff options
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r-- | gdb/ada-lang.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index b54ef19ad6a..21f3348a161 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -5079,6 +5079,20 @@ remove_extra_symbols (std::vector<struct block_symbol> &syms) } } + /* Two functions with the same block are identical. */ + + else if (syms[i].symbol->aclass () == LOC_BLOCK) + { + for (j = 0; !remove_p && j < syms.size (); j += 1) + { + if (i != j + && syms[j].symbol->aclass () == LOC_BLOCK + && (syms[i].symbol->value_block () + == syms[j].symbol->value_block ())) + remove_p = true; + } + } + if (remove_p) syms.erase (syms.begin () + i); else |