diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-01-05 18:58:31 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-01-05 18:58:31 +0000 |
commit | a7fc901a2e39bfe55bfcff5934b2d9fdf9656491 (patch) | |
tree | f6b1e6428fb15d6d480a43252cffba3607577fd7 /lib/CodeGen/Mangle.cpp | |
parent | cbf40f913aa2aa5de6e0540fed209405d00a2c69 (diff) |
Replace the representation of template template argument pack
expansions with something that is easier to use correctly: a new
template argment kind, rather than a bit on an existing kind. Update
all of the switch statements that deal with template arguments, fixing
a few latent bugs in the process. I"m happy with this representation,
now.
And, oh look! Template instantiation and deduction work for template
template argument pack expansions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122896 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Mangle.cpp')
-rw-r--r-- | lib/CodeGen/Mangle.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/CodeGen/Mangle.cpp b/lib/CodeGen/Mangle.cpp index 0969b8716f..ff0e9223c8 100644 --- a/lib/CodeGen/Mangle.cpp +++ b/lib/CodeGen/Mangle.cpp @@ -2169,6 +2169,11 @@ void CXXNameMangler::mangleTemplateArg(const NamedDecl *P, // This is mangled as <type>. mangleType(A.getAsTemplate()); break; + case TemplateArgument::TemplateExpansion: + // This is mangled as Dp <type>. + Out << "Dp"; + mangleType(A.getAsTemplateOrTemplatePattern()); + break; case TemplateArgument::Expression: Out << 'X'; mangleExpression(A.getAsExpr()); |