summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTorok Edwin <edwintorok@gmail.com>2010-04-29 06:43:12 +0000
committerTorok Edwin <edwintorok@gmail.com>2010-04-29 06:43:12 +0000
commite8ab3bd3a5c53827dff622723f0834a8f641b1e9 (patch)
treeb8c2a856931b2c3a53db2137c516582283f220f2 /include
parenta36acad67ddade353a79a6b1a7b43bfaa01e86e1 (diff)
downloadllvm-e8ab3bd3a5c53827dff622723f0834a8f641b1e9.tar.gz
llvm-e8ab3bd3a5c53827dff622723f0834a8f641b1e9.tar.bz2
llvm-e8ab3bd3a5c53827dff622723f0834a8f641b1e9.tar.xz
Fix PR6910.
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
Diffstat (limited to 'include')
-rw-r--r--include/llvm/ADT/SmallVector.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h
index 2d79a029d0..18c8619bf9 100644
--- a/include/llvm/ADT/SmallVector.h
+++ b/include/llvm/ADT/SmallVector.h
@@ -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;