[llvm-commits] [dragonegg] r94881 - /dragonegg/trunk/llvm-convert.cpp

Duncan Sands baldrick at free.fr
Sat Jan 30 05:23:10 PST 2010


Author: baldrick
Date: Sat Jan 30 07:23:10 2010
New Revision: 94881

URL: http://llvm.org/viewvc/llvm-project?rev=94881&view=rev
Log:
Port commit 92940 (johannes) from llvm-gcc:
Fix a bug introduced in 90914: use the size of the
return type, not of a pointer to the return type. This
fixes some regressions in the struct-layout-1 part
of the gcc testsuite on darwin x86-64.

Modified:
    dragonegg/trunk/llvm-convert.cpp

Modified: dragonegg/trunk/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/llvm-convert.cpp?rev=94881&r1=94880&r2=94881&view=diff

==============================================================================
--- dragonegg/trunk/llvm-convert.cpp (original)
+++ dragonegg/trunk/llvm-convert.cpp Sat Jan 30 07:23:10 2010
@@ -2696,7 +2696,9 @@
     return 0;
 
   if (Client.isAggrReturn()) {
-    if (TD.getTypeAllocSize(Call->getType()) <= TD.getTypeAllocSize(DestLoc->Ptr->getType())) {
+    if (TD.getTypeAllocSize(Call->getType()) <=
+        TD.getTypeAllocSize(cast<PointerType>(DestLoc->Ptr->getType())
+                                             ->getElementType())) {
       Value *Dest = Builder.CreateBitCast(DestLoc->Ptr,
                                           Call->getType()->getPointerTo());
       LLVM_EXTRACT_MULTIPLE_RETURN_VALUE(Call,Dest,DestLoc->Volatile,Builder);





More information about the llvm-commits mailing list