summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/InstructionSimplify.cpp
diff options
context:
space:
mode:
authorSiva Chandra <sivachandra@google.com>2015-09-23 17:47:08 +0000
committerSiva Chandra <sivachandra@google.com>2015-09-23 17:47:08 +0000
commitcebabb9fc0a4f921171448304ae62445dfb29019 (patch)
tree561ec1b024015f67edc193d60251af2ac5756b0f /llvm/lib/Analysis/InstructionSimplify.cpp
parent7b41f70e6c323615d54ce5058220214c46279add (diff)
downloadbcm5719-llvm-cebabb9fc0a4f921171448304ae62445dfb29019.tar.gz
bcm5719-llvm-cebabb9fc0a4f921171448304ae62445dfb29019.zip
DWARFASTParserClang::CompleteTypeFromDWARF: Handle incomplete baseclass or child
Summary: With this change DWARFASTParserClang::CompleteTypeFromDWARF returns false if DWARFASTParserClang::ParseChildMembers returns false. Similarly, it returns false if any base class is of an incomplete type. This helps in cases like these: class Foo { public: std::string str; }; ... Foo f; If a file with the above code is compiled with a modern clang but without the -fno-limit-debug-info (or similar) option, then the DWARF has only a forward declration for std::string. In which case, the type for "class Foo" cannot be completed. If LLDB does not detect that a child member has incomplete type, then it wrongly conveys to clang (the LLDB compiler) that "class Foo" is complete, and consequently crashes due to an assertion failure in clang when running commands like "p f" or "frame var f". Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13066 llvm-svn: 248401
Diffstat (limited to 'llvm/lib/Analysis/InstructionSimplify.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud