diff options
author | Sean Callanan <scallanan@apple.com> | 2012-04-12 23:10:00 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2012-04-12 23:10:00 +0000 |
commit | 02eee4d4f722c2d40c468cb07523243961d671dd (patch) | |
tree | c644af4b51727ea565f9e90441bb951ae5a7c02b /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp | |
parent | 9455da0ea912b8b05879a2e25894c120923d54b9 (diff) | |
download | bcm5719-llvm-02eee4d4f722c2d40c468cb07523243961d671dd.tar.gz bcm5719-llvm-02eee4d4f722c2d40c468cb07523243961d671dd.zip |
Fixed a problem where LLDB inserted regular C
FunctionDecls into classes if it looked up a
method in a different DWARF context than the
one where it found the parent class's definition.
The symptom of this was, for a method A::B(),
1) LLDB finds A in context 1, creating a
CXXRecordDecl for A and marking it as needing
completion
2) LLDB looks up B in context 2, finds that its
parent A already has a CXXRecordDecl, but can't
find a CXXMethodDecl for B
3) Not finding a CXXMethodDecl for B, LLDB doesn't
set the flag indicating that B was resolved
4) Because the flag wasn't set, LLDB's fallthrough
code creates a FunctionDecl for B and sticks it
in the DeclContext -- in this case, A.
5) Clang crashes on finding a FunctionDecl inside a
CXXRecordDecl.
llvm-svn: 154627
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions