summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-07-08 18:33:14 +0000
committerAnders Carlsson <andersca@mac.com>2009-07-08 18:33:14 +0000
commit5b2095ce16a591f54838f23ebea488dc52aa7ea3 (patch)
tree6459468e3afe84c8e6edd5e3d41fe73c9304af2f
parent9ca33e8a9fd35a0ef0ea99e3a31ba280e38ec630 (diff)
downloadbcm5719-llvm-5b2095ce16a591f54838f23ebea488dc52aa7ea3.tar.gz
bcm5719-llvm-5b2095ce16a591f54838f23ebea488dc52aa7ea3.zip
Implement code generation of ChooseExpr for aggregate types.
llvm-svn: 75021
-rw-r--r--clang/lib/CodeGen/CGExprAgg.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp
index 3898d164478..46ccdd8a7d3 100644
--- a/clang/lib/CodeGen/CGExprAgg.cpp
+++ b/clang/lib/CodeGen/CGExprAgg.cpp
@@ -102,6 +102,7 @@ public:
void VisitObjCKVCRefExpr(ObjCKVCRefExpr *E);
void VisitConditionalOperator(const ConditionalOperator *CO);
+ void VisitChooseExpr(const ChooseExpr *CE);
void VisitInitListExpr(InitListExpr *E);
void VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) {
Visit(DAE->getExpr());
@@ -295,6 +296,10 @@ void AggExprEmitter::VisitConditionalOperator(const ConditionalOperator *E) {
CGF.EmitBlock(ContBlock);
}
+void AggExprEmitter::VisitChooseExpr(const ChooseExpr *CE) {
+ Visit(CE->getChosenSubExpr(CGF.getContext()));
+}
+
void AggExprEmitter::VisitVAArgExpr(VAArgExpr *VE) {
llvm::Value *ArgValue = CGF.EmitVAListRef(VE->getSubExpr());
llvm::Value *ArgPtr = CGF.EmitVAArg(ArgValue, VE->getType());
OpenPOWER on IntegriCloud