implement codegen of builtin_choose_expr for complex.

llvm-svn: 41349
This commit is contained in:
Chris Lattner 2007-08-24 02:18:47 +00:00
parent a719a60609
commit db0d60d5b5
1 changed files with 10 additions and 0 deletions

View File

@ -118,6 +118,7 @@ public:
ComplexPairTy VisitConditionalOperator(const ConditionalOperator *CO);
ComplexPairTy VisitChooseExpr(ChooseExpr *CE);
// case Expr::ChooseExprClass:
};
} // end anonymous namespace.
@ -313,6 +314,15 @@ VisitConditionalOperator(const ConditionalOperator *E) {
return ComplexPairTy(RealPN, ImagPN);
}
ComplexPairTy ComplexExprEmitter::VisitChooseExpr(ChooseExpr *E) {
llvm::APSInt CondVal(32);
bool IsConst = E->getCond()->isIntegerConstantExpr(CondVal, CGF.getContext());
assert(IsConst && "Condition of choose expr must be i-c-e"); IsConst=IsConst;
// Emit the LHS or RHS as appropriate.
return Visit(CondVal != 0 ? E->getLHS() : E->getRHS());
}
//===----------------------------------------------------------------------===//
// Entry Point into this File
//===----------------------------------------------------------------------===//