diff options
| -rw-r--r-- | clang/lib/CodeGen/CGRecordLayoutBuilder.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp index d7d214fd7ec..e67f517e1e3 100644 --- a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -203,6 +203,9 @@ public: void CGRecordLayoutBuilder::Layout(const RecordDecl *D) { Alignment = Types.getContext().getASTRecordLayout(D).getAlignment(); Packed = D->hasAttr<PackedAttr>(); + const ASTRecordLayout &Layout = Types.getContext().getASTRecordLayout(D); + if (Layout.getSize() % Layout.getAlignment() != 0) + Packed = true; if (D->isUnion()) { LayoutUnion(D); |

