summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Cohen <jeffc@jolt-lang.org>2007-04-09 19:26:30 +0000
committerJeff Cohen <jeffc@jolt-lang.org>2007-04-09 19:26:30 +0000
commit4397363c16d9cad886933fad693785580c1e5269 (patch)
treea1ff4a17a216e73fe883801533725727917933f9
parent8436cdfda2b83e6a3710d8741d4fea2b6d0d421b (diff)
downloadbcm5719-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
-rw-r--r--llvm/lib/Target/TargetData.cpp2
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));
OpenPOWER on IntegriCloud