forked from OSchip/llvm-project
implement codegen of builtin_choose_expr for complex.
llvm-svn: 41349
This commit is contained in:
parent
a719a60609
commit
db0d60d5b5
|
@ -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
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue