summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorDmitry Polukhin <dmitry.polukhin@gmail.com>2017-06-14 09:47:47 +0000
committerDmitry Polukhin <dmitry.polukhin@gmail.com>2017-06-14 09:47:47 +0000
commitd4b3bbc73a08429e4b4f840208d2124b1af33720 (patch)
treef20210e4e4a63cf38a69402b8f2faa328da0c169 /clang
parentaf0c04b30b7d14286784962370eec5181993ff2e (diff)
downloadbcm5719-llvm-d4b3bbc73a08429e4b4f840208d2124b1af33720.tar.gz
bcm5719-llvm-d4b3bbc73a08429e4b4f840208d2124b1af33720.zip
Fix for Itanium mangler issue with templates
Patch by Serge Preis Differential Revision: https://reviews.llvm.org/D32428 llvm-svn: 305377
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/AST/ItaniumMangle.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index c9bb45a37eb..dc25e5213ba 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -4550,9 +4550,11 @@ CXXNameMangler::makeFunctionReturnTypeTags(const FunctionDecl *FD) {
const FunctionProtoType *Proto =
cast<FunctionProtoType>(FD->getType()->getAs<FunctionType>());
+ FunctionTypeDepthState saved = TrackReturnTypeTags.FunctionTypeDepth.push();
TrackReturnTypeTags.FunctionTypeDepth.enterResultType();
TrackReturnTypeTags.mangleType(Proto->getReturnType());
TrackReturnTypeTags.FunctionTypeDepth.leaveResultType();
+ TrackReturnTypeTags.FunctionTypeDepth.pop(saved);
return TrackReturnTypeTags.AbiTagsRoot.getSortedUniqueUsedAbiTags();
}
OpenPOWER on IntegriCloud