diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-06-04 22:46:59 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-06-04 22:46:59 +0000 |
commit | bd1d18ecc420838b7ba620c0a2c5d2a86cac371d (patch) | |
tree | e7531277a21781df3e373f529b662681ab6bb27a | |
parent | 36d02af300a207242f0486b4255420d8be796b21 (diff) |
PR13022: cope with parenthesized function types in MS name mangling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157959 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/AST/MicrosoftMangle.cpp | 2 | ||||
-rw-r--r-- | test/CodeGenCXX/mangle-ms.cpp | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/AST/MicrosoftMangle.cpp b/lib/AST/MicrosoftMangle.cpp index 7bcc2f384a..5984881702 100644 --- a/lib/AST/MicrosoftMangle.cpp +++ b/lib/AST/MicrosoftMangle.cpp @@ -198,7 +198,7 @@ void MicrosoftCXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD) { // We should never ever see a FunctionNoProtoType at this point. // We don't even know how to mangle their types anyway :). - const FunctionProtoType *FT = cast<FunctionProtoType>(FD->getType()); + const FunctionProtoType *FT = FD->getType()->castAs<FunctionProtoType>(); bool InStructor = false, InInstMethod = false; const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD); diff --git a/test/CodeGenCXX/mangle-ms.cpp b/test/CodeGenCXX/mangle-ms.cpp index 6556ab7308..ff757685b2 100644 --- a/test/CodeGenCXX/mangle-ms.cpp +++ b/test/CodeGenCXX/mangle-ms.cpp @@ -116,3 +116,8 @@ void operator_new_delete() { delete [] array; // CHECK: @"\01??_V@YAXPAX@Z" } + +// PR13022 +void (redundant_parens)(); +void redundant_parens_use() { redundant_parens(); } +// CHECK: @"\01?redundant_parens@@YAXXZ" |