From e4ff4b56fe4bdc051af4ef808ebbbff129bfa804 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 5 Jan 2011 18:58:31 +0000 Subject: 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. llvm-svn: 122896 --- clang/lib/CodeGen/Mangle.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/CodeGen') diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp index 0969b8716f6..ff0e9223c81 100644 --- a/clang/lib/CodeGen/Mangle.cpp +++ b/clang/lib/CodeGen/Mangle.cpp @@ -2169,6 +2169,11 @@ void CXXNameMangler::mangleTemplateArg(const NamedDecl *P, // This is mangled as . mangleType(A.getAsTemplate()); break; + case TemplateArgument::TemplateExpansion: + // This is mangled as Dp . + Out << "Dp"; + mangleType(A.getAsTemplateOrTemplatePattern()); + break; case TemplateArgument::Expression: Out << 'X'; mangleExpression(A.getAsExpr()); -- cgit v1.2.3