diff options
author | Jeff Cohen <jeffc@jolt-lang.org> | 2007-04-09 19:26:30 +0000 |
---|---|---|
committer | Jeff Cohen <jeffc@jolt-lang.org> | 2007-04-09 19:26:30 +0000 |
commit | 4397363c16d9cad886933fad693785580c1e5269 (patch) | |
tree | a1ff4a17a216e73fe883801533725727917933f9 /llvm/lib/Target/TargetData.cpp | |
parent | 8436cdfda2b83e6a3710d8741d4fea2b6d0d421b (diff) | |
download | bcm5719-llvm-4397363c16d9cad886933fad693785580c1e5269.tar.gz bcm5719-llvm-4397363c16d9cad886933fad693785580c1e5269.zip |
When the number of elements is zero, don't malloc 32GB on 64-bit systems.
Fixes unexpected failures on FreeBSD/amd64 of:
CFrontend/2005-09-24-BitFieldCrash.c:
CFrontend/2007-02-04-EmptyStruct.c:
CFrontend/2007-03-26-ZeroWidthBitfield.c:
CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll:
llvm-svn: 35828
Diffstat (limited to 'llvm/lib/Target/TargetData.cpp')
-rw-r--r-- | llvm/lib/Target/TargetData.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/TargetData.cpp b/llvm/lib/Target/TargetData.cpp index b1f08079f0e..10ee707aea4 100644 --- a/llvm/lib/Target/TargetData.cpp +++ b/llvm/lib/Target/TargetData.cpp @@ -342,7 +342,7 @@ const StructLayout *TargetData::getStructLayout(const StructType *Ty) const { // Otherwise, create the struct layout. Because it is variable length, we // malloc it, then use placement new. - unsigned NumElts = Ty->getNumElements(); + int NumElts = Ty->getNumElements(); StructLayout *L = (StructLayout *)malloc(sizeof(StructLayout)+(NumElts-1)*sizeof(uint64_t)); |