summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/MicrosoftMangle.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-03-20 22:29:42 +0000
committerReid Kleckner <reid@kleckner.net>2013-03-20 22:29:42 +0000
commit831b71e0b57d446e56e1c7d8e50d890a03437fa8 (patch)
treebab667d48666034f7f08fa2c6f2c1311ed104750 /clang/lib/AST/MicrosoftMangle.cpp
parent67f25272f193c4263f0cc29ee1af764c161ffb97 (diff)
downloadbcm5719-llvm-831b71e0b57d446e56e1c7d8e50d890a03437fa8.tar.gz
bcm5719-llvm-831b71e0b57d446e56e1c7d8e50d890a03437fa8.zip
[ms-cxxabi] Mangle function pointer template arguments correctly
Reviewers: rjmccall CC: timurrrr, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D554 llvm-svn: 177589
Diffstat (limited to 'clang/lib/AST/MicrosoftMangle.cpp')
-rw-r--r--clang/lib/AST/MicrosoftMangle.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp
index 81a138949bf..918e5d45ced 100644
--- a/clang/lib/AST/MicrosoftMangle.cpp
+++ b/clang/lib/AST/MicrosoftMangle.cpp
@@ -827,6 +827,9 @@ MicrosoftCXXNameMangler::mangleTemplateArgs(const TemplateDecl *TD,
case TemplateArgument::Type:
mangleType(TA.getAsType(), SourceRange());
break;
+ case TemplateArgument::Declaration:
+ mangle(cast<NamedDecl>(TA.getAsDecl()), "$1?");
+ break;
case TemplateArgument::Integral:
mangleIntegerLiteral(TA.getAsIntegral(),
TA.getIntegralType()->isBooleanType());
@@ -836,7 +839,6 @@ MicrosoftCXXNameMangler::mangleTemplateArgs(const TemplateDecl *TD,
break;
case TemplateArgument::Template:
case TemplateArgument::TemplateExpansion:
- case TemplateArgument::Declaration:
case TemplateArgument::NullPtr:
case TemplateArgument::Pack: {
// Issue a diagnostic.
OpenPOWER on IntegriCloud