summaryrefslogtreecommitdiffstats
path: root/clang/CodeGen/CodeGenTypes.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-06-22 20:56:16 +0000
committerChris Lattner <sabre@nondot.org>2007-06-22 20:56:16 +0000
commitc6395936ae1c35e755a3fd7e4a67c7b47142643c (patch)
treec7dcf531985379917eae5eeebb91c48f01c7cf9a /clang/CodeGen/CodeGenTypes.cpp
parentf033c147c94d42439e789ef34f4c392b7d6e48c5 (diff)
downloadbcm5719-llvm-c6395936ae1c35e755a3fd7e4a67c7b47142643c.tar.gz
bcm5719-llvm-c6395936ae1c35e755a3fd7e4a67c7b47142643c.zip
Split complex types out from being members of BuiltinType to being their own
types. llvm-svn: 39672
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