summaryrefslogtreecommitdiffstats
path: root/clang/CodeGen/CodeGenTypes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/CodeGen/CodeGenTypes.cpp')
-rw-r--r--clang/CodeGen/CodeGenTypes.cpp21
1 files changed, 6 insertions, 15 deletions
diff --git a/clang/CodeGen/CodeGenTypes.cpp b/clang/CodeGen/CodeGenTypes.cpp
index 63f3600b94c..4210402bc5d 100644
--- a/clang/CodeGen/CodeGenTypes.cpp
+++ b/clang/CodeGen/CodeGenTypes.cpp
@@ -63,24 +63,15 @@ const llvm::Type *CodeGenTypes::ConvertType(QualType T) {
case BuiltinType::LongDouble:
// FIXME: mapping long double onto double.
return llvm::Type::DoubleTy;
- case BuiltinType::FloatComplex: {
- std::vector<const llvm::Type*> Elts;
- Elts.push_back(llvm::Type::FloatTy);
- Elts.push_back(llvm::Type::FloatTy);
- return llvm::StructType::get(Elts);
- }
-
- case BuiltinType::LongDoubleComplex:
- // FIXME: mapping long double complex onto double complex.
- case BuiltinType::DoubleComplex: {
- std::vector<const llvm::Type*> Elts;
- Elts.push_back(llvm::Type::DoubleTy);
- Elts.push_back(llvm::Type::DoubleTy);
- return llvm::StructType::get(Elts);
- }
}
break;
}
+ case Type::Complex: {
+ std::vector<const llvm::Type*> Elts;
+ Elts.push_back(ConvertType(cast<ComplexType>(Ty).getElementType()));
+ Elts.push_back(Elts[0]);
+ return llvm::StructType::get(Elts);
+ }
case Type::Pointer: {
const PointerType &P = cast<PointerType>(Ty);
return llvm::PointerType::get(ConvertType(P.getPointeeType()));
OpenPOWER on IntegriCloud