diff options
author | Reid Kleckner <reid@kleckner.net> | 2013-03-20 22:29:42 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2013-03-20 22:29:42 +0000 |
commit | 831b71e0b57d446e56e1c7d8e50d890a03437fa8 (patch) | |
tree | bab667d48666034f7f08fa2c6f2c1311ed104750 /clang/lib/AST/MicrosoftMangle.cpp | |
parent | 67f25272f193c4263f0cc29ee1af764c161ffb97 (diff) | |
download | bcm5719-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.cpp | 4 |
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. |