summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ItaniumMangle.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-10-27 06:02:45 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-10-27 06:02:45 +0000
commit9f690bd80bb67d483df2b9e15261e548f8b3a474 (patch)
treec4d74a57ede2212275c7594e815508082249bb93 /clang/lib/AST/ItaniumMangle.cpp
parentd5510d1e5c2d0e4d18389f1f0c1f649cecea5d3a (diff)
downloadbcm5719-llvm-9f690bd80bb67d483df2b9e15261e548f8b3a474.tar.gz
bcm5719-llvm-9f690bd80bb67d483df2b9e15261e548f8b3a474.zip
[coroutines] Creation of promise object, lookup of operator co_await, building
of await_* calls, and AST representation for same. llvm-svn: 251387
Diffstat (limited to 'clang/lib/AST/ItaniumMangle.cpp')
-rw-r--r--clang/lib/AST/ItaniumMangle.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index 86bc8e67756..c3432839c2e 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -3514,6 +3514,18 @@ recurse:
case Expr::CXXThisExprClass:
Out << "fpT";
break;
+
+ case Expr::CoawaitExprClass:
+ // FIXME: Propose a non-vendor mangling.
+ Out << "v18co_await";
+ mangleExpression(cast<CoawaitExpr>(E)->getOperand());
+ break;
+
+ case Expr::CoyieldExprClass:
+ // FIXME: Propose a non-vendor mangling.
+ Out << "v18co_yield";
+ mangleExpression(cast<CoawaitExpr>(E)->getOperand());
+ break;
}
}
OpenPOWER on IntegriCloud