Right now, this is handled only when last element is an integer.

llvm-svn: 50543
diff --git a/llvm-gcc-4.2/gcc/llvm-abi.h b/llvm-gcc-4.2/gcc/llvm-abi.h
index 8c2e35d..e155e26 100644
--- a/llvm-gcc-4.2/gcc/llvm-abi.h
+++ b/llvm-gcc-4.2/gcc/llvm-abi.h
@@ -603,8 +603,9 @@
       if (InSize < Size) {
         unsigned N = STy->getNumElements();
         const llvm::Type *LastEltTy = STy->getElementType(N-1);
-        LastEltSizeDiff = 
-          getTargetData().getABITypeSize(LastEltTy) - (Size - InSize);
+        if (LastEltTy->isInteger())
+          LastEltSizeDiff = 
+            getTargetData().getABITypeSize(LastEltTy) - (Size - InSize);
       }
     }
     for (unsigned i = 0, e = Elts.size(); i != e; ++i) {