зеркало из https://github.com/microsoft/clang-1.git
Fix for PR#13606: http://llvm.org/bugs/show_bug.cgi?id=13606
Changed the alignment of an LValue to be 64 bits so that we can handle alignment values up to half of a 64-bit address space. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161971 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
5aad79f8d5
Коммит
9e4abb4aa9
|
@ -128,7 +128,7 @@ class LValue {
|
|||
|
||||
// The alignment to use when accessing this lvalue. (For vector elements,
|
||||
// this is the alignment of the whole vector.)
|
||||
unsigned short Alignment;
|
||||
int64_t Alignment;
|
||||
|
||||
// objective-c's ivar
|
||||
bool Ivar:1;
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
// PR13606 - Clang crashes with large alignment attribute
|
||||
// RUN: %clang -S -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
// CHECK: x
|
||||
// CHECK: align
|
||||
// CHECK: 1048576
|
||||
volatile char x[4000] __attribute__((aligned(0x100000)));
|
||||
|
||||
int
|
||||
main (int argc, char ** argv) {
|
||||
// CHECK: y
|
||||
// CHECK: align
|
||||
// CHECK: 1048576
|
||||
volatile char y[4000] __attribute__((aligned(0x100000)));
|
||||
|
||||
return y[argc];
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче