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 /clang/lib/CodeGen/CGExprAgg.cpp | |
| parent | 9ca33e8a9fd35a0ef0ea99e3a31ba280e38ec630 (diff) | |
Implement code generation of ChooseExpr for aggregate types.
llvm-svn: 75021
Diffstat (limited to 'clang/lib/CodeGen/CGExprAgg.cpp')
| -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 3898d1644780..46ccdd8a7d33 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()); |
