llvm-project/lldb/source/Plugins
Sean Callanan 09e91ac6ab [DWARF parser] Produce correct template parameter packs
Templates can end in parameter packs, like this

template <class T...> struct MyStruct 
  { /*...*/ };

LLDB does not currently support these parameter packs; 
it does not emit them into the template argument list
at all. This causes problems when you specialize, e.g.:

template <> struct MyStruct<int> 
  { /*...*/ };
template <> struct MyStruct<int, int> : MyStruct<int> 
  { /*...*/ };

LLDB generates two template specializations, each with 
no template arguments, and then when they are imported 
by the ASTImporter into a parser's AST context we get a 
single specialization that inherits from itself, 
causing Clang's record layout mechanism to smash its
stack.

This patch fixes the problem for classes and adds
tests. The tests for functions fail because Clang's
ASTImporter can't import them at the moment, so I've
xfailed that test.

Differential Revision: https://reviews.llvm.org/D33025

llvm-svn: 302833
2017-05-11 22:08:05 +00:00
..
ABI ABISysV_arm64: compute return value for large vectors correctly 2017-05-05 10:50:02 +00:00
Disassembler Move DataBuffer / DataExtractor and friends from Core -> Utility. 2017-03-04 01:30:05 +00:00
DynamicLoader Be a little more permissive in DynamicLoaderMacOS::CanLoadImage 2017-05-06 01:15:47 +00:00
ExpressionParser [DWARF parser] Produce correct template parameter packs 2017-05-11 22:08:05 +00:00
Instruction [ARM/Emulation] Remove an unneeded comparison and simplify. NFCI. 2017-04-14 22:27:28 +00:00
InstrumentationRuntime ThreadSanitizer plugin: match for loop variable with expected type 2017-04-22 01:38:54 +00:00
JITLoader iwyu fixes for lldbCore. 2017-04-06 21:28:29 +00:00
Language Remove unused code related to CPlusPlusLanguage::FindEquivalentNames 2017-05-02 09:00:52 +00:00
LanguageRuntime Fixed a crash when dealing with an empty method name in the ObjC runtime. 2017-04-26 20:36:47 +00:00
MemoryHistory [CMake] [2/4] Update a batch of plugins 2017-01-31 22:23:49 +00:00
ObjectContainer Change UniqueCStringMap to use ConstString as the key 2017-05-02 10:17:30 +00:00
ObjectFile ObjectFileELF: Fix symbol lookup in bss section 2017-05-02 12:40:31 +00:00
OperatingSystem Move DataBuffer / DataExtractor and friends from Core -> Utility. 2017-03-04 01:30:05 +00:00
Platform Re-landing IPv6 support for LLDB Host 2017-04-26 23:17:20 +00:00
Process [Utility] Placate another GCC warning. 2017-04-20 14:45:33 +00:00
ScriptInterpreter Move StringList from Core -> Utility. 2017-03-21 18:25:04 +00:00
StructuredData Delete some more dead includes. 2017-03-22 23:33:16 +00:00
SymbolFile [DWARF parser] Produce correct template parameter packs 2017-05-11 22:08:05 +00:00
SymbolVendor Move classes from Core -> Utility. 2017-02-02 21:39:50 +00:00
SystemRuntime Move FileSpec from Host -> Utility. 2017-03-22 18:40:07 +00:00
UnwindAssembly PluginUnwindAssemblyX86: add missing linkage to MCDisasm 2017-03-25 18:51:37 +00:00
CMakeLists.txt Add StructuredData plugin type; showcase with new DarwinLog feature 2016-08-19 04:21:48 +00:00