Fix PR6910.
authorTorok Edwin <edwintorok@gmail.com>
Thu, 29 Apr 2010 06:43:12 +0000 (06:43 +0000)
committerTorok Edwin <edwintorok@gmail.com>
Thu, 29 Apr 2010 06:43:12 +0000 (06:43 +0000)
Limit alignment in SmallVector 8, otherwise GCC assumes 16 byte alignment.
opetaror new, and malloc only return 8-byte aligned memory on 32-bit Linux,
which cause a crash if code is compiled with -O3 (or -ftree-vectorize) and some
SmallVector code is vectorized.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102604 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/SmallVector.h

index 2d79a029d0191e3a44ca391e41a0b30f33a8a2c4..18c8619bf93a52376b893f87fb6b5a438511d480 100644 (file)
@@ -59,7 +59,7 @@ protected:
   // number of union instances for the space, which guarantee maximal alignment.
   struct U {
 #ifdef __GNUC__
-    char X __attribute__((aligned));
+    char X __attribute__((aligned(8)));
 #else
     union {
       double D;