: CGF(cgf), DestPtr(destPtr), VolatileDest(volatileDest) {
}
- typedef std::pair<llvm::Value *, llvm::Value *> ComplexPairTy;
-
//===--------------------------------------------------------------------===//
// Utilities
//===--------------------------------------------------------------------===//
void CodeGenFunction::EmitAggregateCopy(llvm::Value *DestPtr,
llvm::Value *SrcPtr, QualType Ty) {
// Don't use memcpy for complex numbers.
+ // FIXME: split complex number handling out of here.
if (Ty->isComplexType()) {
llvm::Value *Real, *Imag;
EmitLoadOfComplex(SrcPtr, Real, Imag);
using namespace CodeGen;
//===----------------------------------------------------------------------===//
-// Aggregate Expression Emitter
+// Complex Expression Emitter
//===----------------------------------------------------------------------===//
typedef std::pair<llvm::Value *, llvm::Value *> ComplexPairTy;
//===----------------------------------------------------------------------===//
ComplexPairTy ComplexExprEmitter::VisitBinaryOperator(const BinaryOperator *E) {
- fprintf(stderr, "Unimplemented aggregate binary expr!\n");
+ fprintf(stderr, "Unimplemented complex binary expr!\n");
E->dump();
return ComplexPairTy();
#if 0
CGF.EmitBlock(LHSBlock);
// Handle the GNU extension for missing LHS.
- assert(E->getLHS() && "Must have LHS for aggregate value");
+ assert(E->getLHS() && "Must have LHS for complex value");
ComplexPairTy LHS = Visit(E->getLHS());
CGF.Builder.CreateBr(ContBlock);