Fixed several problems with class uniq'ing in the
authorSean Callanan <scallanan@apple.com>
Tue, 26 Feb 2013 01:12:25 +0000 (01:12 +0000)
committerSean Callanan <scallanan@apple.com>
Tue, 26 Feb 2013 01:12:25 +0000 (01:12 +0000)
commit2367f8a7883a2ff90d7ae7f740541fa97de2964a
tree272357ec8bad5042ff189477c14343d657dbba71
parent1b33e8d63e829a00e78a152309058ebfb8c43e36
Fixed several problems with class uniq'ing in the
SymbolFileDWARF code:

  - If a class is being uniqued to another copy of itself
    and the method lists don't match exactly, take a slow
    path and at least unique the methods that they have
    in common.

  - Sort name_to_die maps before querying them.  This
    would otherwise result in uniquing failures because
    looking up a name in a map that contains it would
    often fail.

  - Tolerate classes in other symbol files in the case
    of debugging with .o files rather than with a
    .dSYM.  We used to assume that the classes being
    uniqued were in the same symbol file, causing
    unpredictable results.

This will dramatically reduce the number of cases where
a function does not have a valid DeclContext.

<rdar://problem/12153915>

llvm-svn: 176067
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h