llvm-project/lldb
Greg Clayton 219cf31f7d <rdar://problem/11082392>
Fixed an issue that could cause circular type parsing that will assert and kill LLDB.

Prior to this fix the DWARF parser would always create class types and not start their definitions (for both C++ and ObjC classes) until we were asked to complete the class later. When we had cases like:

class A
{
    class B
    {
    };
};

We would alway try to complete A before specifying "A" as the decl context for B. Turns out we can just start the definition and still not complete the class since we can check the TagDecl::isCompleteDefinition() function. This only works for C++ types. This means we will not be pulling in the full definition of parent classes all the time and should help with our memory consumption and also reduce the amount of debug info we have to parse.

I also reduced redundant code that was checking in a lldb::clang_type_t was a possible C++ dynamic type since it was still completing the type, just to see if it was dynamic. This was fixed in another function that was checking for a type being dynamic as an ObjC or a C++ type, but there was dedicated fucntion for C++ that we missed.

llvm-svn: 153713
2012-03-30 00:51:13 +00:00
..
docs When unwinding from the first frame, try to ask the remote debugserver 2011-12-13 05:39:38 +00:00
examples Fixing a whole class of crashers and potential crashers related to data formatters eating up all the stack when an unknown class has to be summarized ; this should make the whole Objective-C summaries more stable 2012-03-30 00:51:12 +00:00
include <rdar://problem/11082392> 2012-03-30 00:51:13 +00:00
lib Makefile build: clang now depends on libclangEdit. 2012-03-14 11:03:46 +00:00
lldb.xcodeproj <rdar://problem/11082392> 2012-03-30 00:51:13 +00:00
lldb.xcworkspace I accidentally committed some changes to the 2011-12-21 21:30:33 +00:00
resources Updating Xcode project version numbers for lldb-136 and debugserver-185 2012-03-29 02:40:34 +00:00
scripts Part 1 of a series of fixes meant to improve reliability and increase ease of bug fixing for data formatter issues. 2012-03-29 19:29:45 +00:00
source <rdar://problem/11082392> 2012-03-30 00:51:13 +00:00
test Fixing an issue where Unicode characters in an NSString were printed as escape sequences by the summary provider shipping with LLDB - Added relevant test case code. Bonus points for identifying the source of the quotes :-) 2012-03-29 01:34:34 +00:00
tools Missed a file in the last FreeBSD patch. 2012-03-29 17:46:49 +00:00
utils Minor cleanup. 2012-03-05 18:25:29 +00:00
www Removing cascading through inheritance chains for data formatters 2012-03-22 19:55:55 +00:00
.gitignore Remove "llvm" from list of things to ignore. This results in the 2012-03-03 06:43:59 +00:00
INSTALL.txt You'll need to be running Mac OS X to get lldb to build right now. 2010-06-09 07:29:26 +00:00
LICENSE.TXT test commit 2010-06-09 03:55:24 +00:00
Makefile Revert the RTTI change from r151187. It make lldb compile with g++ 4.4 but it doesn't link anymore. The bug seems to be fixed in g++ 4.5. 2012-02-22 21:00:17 +00:00