llvm-project/lldb/source/Symbol
Stephane Sezer 9901e9c6c8 Fix resolution of certain recursive types.
Summary:
If a struct type S has a member T that has a member that is a function that
returns a typedef of S* the respective field would be duplicated, which caused
an assert down the line in RecordLayoutBuilder. This patch adds a check that
removes the possibility of trying to resolve the same type twice within the
same callstack.

This commit also adds unit tests for these failures.

Fixes https://llvm.org/bugs/show_bug.cgi?id=20486.

Patch by Cristian Hancila.

Test Plan: Run unit tests.

Reviewers: clayborg spyffe

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D8561

llvm-svn: 234441
2015-04-08 21:52:45 +00:00
..
Block.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
CMakeLists.txt The lldb unwinder can now use the unwind information from the compact-unwind 2014-12-08 03:09:00 +00:00
ClangASTContext.cpp Correctly detect sign-ness of wchar_t 2015-04-01 09:48:02 +00:00
ClangASTImporter.cpp Fix resolution of certain recursive types. 2015-04-08 21:52:45 +00:00
ClangASTType.cpp Remove Host::Backtrace in favor of llvm::sys::PrintStackTrace() 2015-03-06 20:45:43 +00:00
ClangExternalASTSourceCallbacks.cpp Fix error introduced by changing function signatures. 2015-03-24 18:56:08 +00:00
ClangExternalASTSourceCommon.cpp Fixed an unfortunate reversed conditional that 2014-12-06 02:31:49 +00:00
ClangNamespaceDecl.cpp Added a packet history object to the GDBRemoteCommunication class that is always remembering the last 512 packets that were sent/received. These packets get dumped if logging gets enabled, or when the new expr lldb::DumpProcessGDBRemotePacketHistory (void *process, const char *log_file_path) global function is called. 2012-04-09 22:46:21 +00:00
CompactUnwindInfo.cpp Fix warnings generated by clang-cl. 2015-04-02 20:57:38 +00:00
CompileUnit.cpp For some reason, sometimes the directory paths that clang emits have internal 2014-11-15 01:54:26 +00:00
DWARFCallFrameInfo.cpp Add a tiny bit of hardening to the eh_frame and compact unwind parsing. 2015-04-02 04:35:32 +00:00
Declaration.cpp For some reason, sometimes the directory paths that clang emits have internal 2014-11-15 01:54:26 +00:00
FuncUnwinders.cpp Various unwinder work. 2014-12-21 10:44:54 +00:00
Function.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
LineEntry.cpp DWARF says line number 0 is a valid line number - used to indicate a source line that should 2013-09-27 01:15:46 +00:00
LineTable.cpp Fixed a problem where we might omit some breakpoints when using DWARF in .o files. 2015-02-10 16:53:40 +00:00
Makefile
ObjectFile.cpp Move lldb-log.cpp to core/Logging.cpp 2015-03-18 18:20:42 +00:00
Symbol.cpp Correctly resolve symbol names containing linker annotations 2015-03-04 10:25:22 +00:00
SymbolContext.cpp Change the default disassembly format again. First attempt at 2015-02-13 23:24:21 +00:00
SymbolFile.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
SymbolVendor.cpp Add SymbolVendor::GetMainFileSpec and simplify CommandObjectTargetModulesList::PrintModule 2015-03-10 21:18:59 +00:00
Symtab.cpp Correctly resolve symbol names containing linker annotations 2015-03-04 10:25:22 +00:00
Type.cpp Preparatory infrastructural work to support dynamically determining sizes of ObjC types via the runtime 2015-01-28 00:07:51 +00:00
TypeList.cpp cleanup unreferenced functions 2014-03-20 06:08:36 +00:00
UnwindPlan.cpp Support evaluation of DWARF expressions setting CFA 2015-02-23 10:29:01 +00:00
UnwindTable.cpp The lldb unwinder can now use the unwind information from the compact-unwind 2014-12-08 03:09:00 +00:00
Variable.cpp [DWARF] If linkages names are missing, use decl context to get qualified names. 2015-03-24 18:32:27 +00:00
VariableList.cpp Restore the ability of SBFrame::FindValue() to look for file global variables 2014-02-19 19:35:13 +00:00
VerifyDecl.cpp Added VerifyDecl, a function that, when LLDB is 2011-10-26 01:06:27 +00:00