diff options
| author | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2017-06-14 09:47:47 +0000 |
|---|---|---|
| committer | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2017-06-14 09:47:47 +0000 |
| commit | d4b3bbc73a08429e4b4f840208d2124b1af33720 (patch) | |
| tree | f20210e4e4a63cf38a69402b8f2faa328da0c169 /clang | |
| parent | af0c04b30b7d14286784962370eec5181993ff2e (diff) | |
| download | bcm5719-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.cpp | 2 |
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(); } |

