diff options
author | Chris Lattner <sabre@nondot.org> | 2007-08-21 16:57:55 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-08-21 16:57:55 +0000 |
commit | 58dee10ed2eee34035f62d1c2d32b3639e9182f8 (patch) | |
tree | 4bdd6185d3c1437d13a0d454f20f256bc07fb820 /CodeGen/CGComplexExpr.cpp | |
parent | c6fb90a7246c2d5d3233e70107bf9d8c7c9e535b (diff) |
reimplement support for complex comparisons, add support for integer complex compares.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41231 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CodeGen/CGComplexExpr.cpp')
-rw-r--r-- | CodeGen/CGComplexExpr.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/CodeGen/CGComplexExpr.cpp b/CodeGen/CGComplexExpr.cpp index 8c93ca3fb5..12be4f7c96 100644 --- a/CodeGen/CGComplexExpr.cpp +++ b/CodeGen/CGComplexExpr.cpp @@ -24,7 +24,7 @@ using namespace CodeGen; // Complex Expression Emitter //===----------------------------------------------------------------------===// -typedef std::pair<llvm::Value *, llvm::Value *> ComplexPairTy; +typedef CodeGenFunction::ComplexPairTy ComplexPairTy; namespace { class VISIBILITY_HIDDEN ComplexExprEmitter @@ -70,6 +70,8 @@ public: ComplexPairTy VisitBinaryOperator(const BinaryOperator *BO); ComplexPairTy VisitBinMul (const BinaryOperator *E); ComplexPairTy VisitBinAdd (const BinaryOperator *E); + + // No comparisons produce a complex result. ComplexPairTy VisitBinAssign (const BinaryOperator *E); @@ -319,10 +321,10 @@ VisitConditionalOperator(const ConditionalOperator *E) { /// EmitComplexExpr - Emit the computation of the specified expression of /// complex type, ignoring the result. -void CodeGenFunction::EmitComplexExpr(const Expr *E) { +ComplexPairTy CodeGenFunction::EmitComplexExpr(const Expr *E) { assert(E && E->getType()->isComplexType() && "Invalid complex expression to emit"); - ComplexExprEmitter(*this).Visit(const_cast<Expr*>(E)); + return ComplexExprEmitter(*this).Visit(const_cast<Expr*>(E)); } |