diff options
author | Chris Lattner <sabre@nondot.org> | 2010-04-16 21:02:32 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-04-16 21:02:32 +0000 |
commit | d39a0d6119a3bf69e3e5149b778e825b77b2e06a (patch) | |
tree | 4edcfdadcb8ddee73b5bf208c5161c8db3fa03fa /lib/CodeGen/CGExprConstant.cpp | |
parent | cdb30b41590bf9e20d1d46a866fce071ebadf21a (diff) |
fix a bogus assertion exposed by a recent change: packing the
struct may cause it to shrink more than one byte. Before
my recent changes we compiled the new test into:
%0 = type { [6 x i8] }
@x = global %0 { [6 x i8] undef }, align 2 ; <%0*> [#uses=0]
which is obviously bogus. Now we compile it into:
%0 = type <{ i32, i8, i8 }>
@x = global %0 zeroinitializer, align 2 ; <%0*> [#uses=0]
Where the last byte only is tail padding.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101536 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprConstant.cpp')
-rw-r--r-- | lib/CodeGen/CGExprConstant.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp index 52e7d045e6..82156f7260 100644 --- a/lib/CodeGen/CGExprConstant.cpp +++ b/lib/CodeGen/CGExprConstant.cpp @@ -372,7 +372,7 @@ bool ConstStructBuilder::Build(InitListExpr *ILE) { assert(!Packed && "Size mismatch!"); ConvertStructToPacked(); - assert(NextFieldOffsetInBytes == LayoutSizeInBytes && + assert(NextFieldOffsetInBytes <= LayoutSizeInBytes && "Converting to packed did not help!"); } |