diff options
author | Anders Carlsson <andersca@mac.com> | 2009-07-08 18:33:14 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-07-08 18:33:14 +0000 |
commit | 5b2095ce16a591f54838f23ebea488dc52aa7ea3 (patch) | |
tree | 6459468e3afe84c8e6edd5e3d41fe73c9304af2f | |
parent | 9ca33e8a9fd35a0ef0ea99e3a31ba280e38ec630 (diff) | |
download | bcm5719-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.cpp | 5 |
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()); |