diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-11-06 02:50:19 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-11-06 02:50:19 +0000 |
| commit | 9e4e0237e4ed2c19726aace47198bbf6a35e61e9 (patch) | |
| tree | bed5ef42f3185c11654ac4bcef69861a9f5ad189 | |
| parent | 72431bd9ea53f7f2afeab80b7ff6a1940db2c555 (diff) | |
| download | bcm5719-llvm-9e4e0237e4ed2c19726aace47198bbf6a35e61e9.tar.gz bcm5719-llvm-9e4e0237e4ed2c19726aace47198bbf6a35e61e9.zip | |
Handle ParenExprs in mangleExpression.
llvm-svn: 86218
| -rw-r--r-- | clang/lib/CodeGen/Mangle.cpp | 5 | ||||
| -rw-r--r-- | clang/test/CodeGenCXX/mangle.cpp | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp index a5b34527969..11bbaae0183 100644 --- a/clang/lib/CodeGen/Mangle.cpp +++ b/clang/lib/CodeGen/Mangle.cpp @@ -1015,6 +1015,11 @@ void CXXNameMangler::mangleExpression(const Expr *E) { // ::= <expr-primary> switch (E->getStmtClass()) { default: assert(false && "Unhandled expression kind!"); + + case Expr::ParenExprClass: + mangleExpression(cast<ParenExpr>(E)->getSubExpr()); + break; + case Expr::DeclRefExprClass: { const Decl *D = cast<DeclRefExpr>(E)->getDecl(); diff --git a/clang/test/CodeGenCXX/mangle.cpp b/clang/test/CodeGenCXX/mangle.cpp index 2ffbae71da0..03e405ecba1 100644 --- a/clang/test/CodeGenCXX/mangle.cpp +++ b/clang/test/CodeGenCXX/mangle.cpp @@ -221,3 +221,9 @@ struct S7 { // CHECK: @"_ZN2S73$_0C1Ev" S7::S7() {} +// PR5063 +template<typename T> typename __enable_if<(__is_scalar<T>::__value), void>::__type ft8() { } +// CHECK: @_Z3ft8IiEN11__enable_ifIXsr11__is_scalarIT_E7__valueEvE6__typeEv +template void ft8<int>(); +// CHECK: @_Z3ft8IPvEN11__enable_ifIXsr11__is_scalarIT_E7__valueEvE6__typeEv +template void ft8<void*>(); |

