diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2009-11-06 20:47:40 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-11-06 20:47:40 +0000 |
commit | e504170f688b0e2113011839b933a4ec450b5182 (patch) | |
tree | 07d67d586a5b2cc9aa31989de68651782ed04be5 /lib/CodeGen/CGRecordLayoutBuilder.cpp | |
parent | 7344c878a73418cfade56e0c2281ac7324a609b2 (diff) |
Prevent a code gen. crash on empty unions - pr5408.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86287 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGRecordLayoutBuilder.cpp')
-rw-r--r-- | lib/CodeGen/CGRecordLayoutBuilder.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/CodeGen/CGRecordLayoutBuilder.cpp b/lib/CodeGen/CGRecordLayoutBuilder.cpp index 7baf69d876..8e0864b8dd 100644 --- a/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -208,7 +208,11 @@ void CGRecordLayoutBuilder::LayoutUnion(const RecordDecl *D) { Align = 1; } } - + if (!Align) { + assert((D->field_begin() == D->field_end()) && "LayoutUnion - Align 0"); + Align = 1; + } + // Append tail padding. if (Layout.getSize() / 8 > Size) AppendPadding(Layout.getSize() / 8, Align); |