Author: rjmccall
Date: Tue Sep 25 04:10:17 2012
New Revision: 164593
URL: http://llvm.org/viewvc/llvm-project?rev=164593&view=rev
Log:
Implement Mike Herrick's proposed noexcept mangling.
Modified:
cfe/trunk/lib/AST/ItaniumMangle.cpp
cfe/trunk/test/CodeGenCXX/mangle-exprs.cpp
Modified: cfe/trunk/lib/AST/ItaniumMangle.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ItaniumMangle.cpp?rev=164593&r1=164592&r2=164593&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ItaniumMangle.cpp (original)
+++ cfe/trunk/lib/AST/ItaniumMangle.cpp Tue Sep 25 04:10:17 2012
@@ -2412,7 +2412,6 @@
case Expr::ExpressionTraitExprClass:
case Expr::VAArgExprClass:
case Expr::CXXUuidofExprClass:
- case Expr::CXXNoexceptExprClass:
case Expr::CUDAKernelCallExprClass:
case Expr::AsTypeExprClass:
case Expr::PseudoObjectExprClass:
@@ -2604,6 +2603,11 @@
Out <<"_E";
break;
+ case Expr::CXXNoexceptExprClass:
+ Out << "nx";
+ mangleExpression(cast<CXXNoexceptExpr>(E)->getOperand());
+ break;
+
case Expr::UnaryExprOrTypeTraitExprClass: {
const UnaryExprOrTypeTraitExpr *SAE = cast<UnaryExprOrTypeTraitExpr>(E);
Modified: cfe/trunk/test/CodeGenCXX/mangle-exprs.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-exprs.cpp?rev=164593&r1=164592&r2=164593&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-exprs.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-exprs.cpp Tue Sep 25 04:10:17 2012
@@ -190,4 +190,11 @@
// CHECK: void @_ZN5test43tf3INS_1XEEEvDTnw_T_ilLi1EEE
template void tf3<X>(X*);
+
+}
+
+namespace test5 {
+ template <typename T> void a(decltype(noexcept(T()))) {}
+ template void a<int>(decltype(noexcept(int())));
+ // CHECK: void @_ZN5test51aIiEEvDTnxcvT__EE(
}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits