[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