llvm-project/lldb
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
..
cmake [CMake] Abstract Config.h generation for Xcode 2017-04-27 16:04:26 +00:00
docs Fix a race condition in FuncUnwinders where the mutex was being 2017-02-24 03:35:46 +00:00
examples Add an example command to toggle between disassembly-only and source mode. 2017-04-20 21:51:27 +00:00
include/lldb [DWARF parser] Produce correct template parameter packs 2017-05-11 22:08:05 +00:00
lit [test] Fix finding LLDB tools when building stand-alone 2017-02-19 22:11:38 +00:00
lldb.xcodeproj Public headers need to be public. 2017-04-28 21:03:18 +00:00
lldb.xcworkspace Revert r275223, which committed the wrong thing. 2016-07-12 23:31:42 +00:00
packages/Python/lldbsuite [DWARF parser] Produce correct template parameter packs 2017-05-11 22:08:05 +00:00
resources Bump the lldb version # in the xcode project files from 2016-03-15 04:36:11 +00:00
scripts Import sys in repo.py. 2017-05-09 20:37:01 +00:00
source [DWARF parser] Produce correct template parameter packs 2017-05-11 22:08:05 +00:00
test [CMake] Override debugserver to use the build tree on Darwin 2017-03-14 20:04:46 +00:00
third_party/Python/module *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
tools Re-landing IPv6 support for LLDB Host 2017-04-26 23:17:20 +00:00
unittests Add TaskMap for iterating a function over a set of integers 2017-05-05 11:16:59 +00:00
utils *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
www Added "info threads", "thread 1" and "apropos". 2017-05-05 23:38:26 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format Updated .clang-format rules so bring LLDB in line with LLVM standards. 2016-09-06 17:19:00 +00:00
.gitignore test infra: clear file-charged issues on rerun of file 2016-10-01 00:17:08 +00:00
CMakeLists.txt [CMake] Abstract Config.h generation for Xcode 2017-04-27 16:04:26 +00:00
CODE_OWNERS.txt Greg Clayton is no longer working at Apple, he will continue to 2017-03-01 00:00:45 +00:00
INSTALL.txt Changed builld-llvm.py to use .json files 2017-02-23 02:21:34 +00:00
LICENSE.TXT
use_lldb_suite_root.py *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00