[cfe-commits] r64756 - /cfe/trunk/lib/CodeGen/CGCall.cpp
Daniel Dunbar
daniel at zuster.org
Mon Feb 16 23:55:56 PST 2009
Author: ddunbar
Date: Tue Feb 17 01:55:55 2009
New Revision: 64756
URL: http://llvm.org/viewvc/llvm-project?rev=64756&view=rev
Log:
x86_64 ABI: Fix assert on return of _Complex long double.
Modified:
cfe/trunk/lib/CodeGen/CGCall.cpp
Modified: cfe/trunk/lib/CodeGen/CGCall.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=64756&r1=64755&r2=64756&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGCall.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGCall.cpp Tue Feb 17 01:55:55 2009
@@ -419,7 +419,7 @@
/// The \arg Lo class will be NoClass iff the argument is ignored.
///
/// If the \arg Lo class is ComplexX87, then the \arg Hi class will
- /// be NoClass.
+ /// also be ComplexX87.
void classify(QualType T, ASTContext &Context, uint64_t OffsetBase,
Class &Lo, Class &Hi) const;
@@ -751,20 +751,21 @@
// part of the value is returned in %st0 and the imaginary part in
// %st1.
case ComplexX87:
- assert(Hi == NoClass && "Unexpected ComplexX87 classification.");
+ assert(Hi == ComplexX87 && "Unexpected ComplexX87 classification.");
ResType = llvm::VectorType::get(llvm::Type::X86_FP80Ty, 2);
break;
}
switch (Hi) {
- // Memory was handled previously, and ComplexX87 and X87 should
- // never occur as hi classes.
+ // Memory was handled previously and X87 should
+ // never occur as a hi class.
case Memory:
case X87:
- case ComplexX87:
assert(0 && "Invalid classification for hi word.");
+ case ComplexX87: // Previously handled.
case NoClass: break;
+
case Integer:
ResType = llvm::StructType::get(ResType, llvm::Type::Int64Ty, NULL);
break;
More information about the cfe-commits
mailing list