summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/MicrosoftMangle.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-06-10 20:06:25 +0000
committerReid Kleckner <reid@kleckner.net>2014-06-10 20:06:25 +0000
commitb4848e7bab685d0e15f4f7fe4382f8ced213d4a8 (patch)
treeeefbbd696c037890e80b0e4a5b5ce1705e9a886d /clang/lib/AST/MicrosoftMangle.cpp
parent6042506b5c2ccfab5843d3bdef6f0d3adb87a5d3 (diff)
downloadbcm5719-llvm-b4848e7bab685d0e15f4f7fe4382f8ced213d4a8.tar.gz
bcm5719-llvm-b4848e7bab685d0e15f4f7fe4382f8ced213d4a8.zip
Fix mangling of __uuidof after two levels of template instantiation
llvm-svn: 210570
Diffstat (limited to 'clang/lib/AST/MicrosoftMangle.cpp')
-rw-r--r--clang/lib/AST/MicrosoftMangle.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp
index 22d4f343a10..a02402580d9 100644
--- a/clang/lib/AST/MicrosoftMangle.cpp
+++ b/clang/lib/AST/MicrosoftMangle.cpp
@@ -1063,6 +1063,9 @@ void MicrosoftCXXNameMangler::mangleExpression(const Expr *E) {
return;
}
+ // Look through no-op casts like template parameter substitutions.
+ E = E->IgnoreParenNoopCasts(Context.getASTContext());
+
const CXXUuidofExpr *UE = nullptr;
if (const UnaryOperator *UO = dyn_cast<UnaryOperator>(E)) {
if (UO->getOpcode() == UO_AddrOf)
OpenPOWER on IntegriCloud