aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGRecordLayoutBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/CGRecordLayoutBuilder.cpp')
-rw-r--r--lib/CodeGen/CGRecordLayoutBuilder.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/CodeGen/CGRecordLayoutBuilder.cpp b/lib/CodeGen/CGRecordLayoutBuilder.cpp
index e16173b6dc..36673764b9 100644
--- a/lib/CodeGen/CGRecordLayoutBuilder.cpp
+++ b/lib/CodeGen/CGRecordLayoutBuilder.cpp
@@ -490,7 +490,8 @@ void CGRecordLayoutBuilder::LayoutUnion(const RecordDecl *D) {
}
// Append tail padding.
- if (Layout.getSize().getQuantity() > Size)
+ uint64_t RecordSizeInBits = Layout.getSize().getQuantity();
+ if (RecordSizeInBits > Size)
AppendPadding(Layout.getSize().getQuantity(), Align);
}
@@ -625,7 +626,8 @@ CGRecordLayoutBuilder::ComputeNonVirtualBaseType(const CXXRecordDecl *RD) {
// First check if we can use the same fields as for the complete class.
- if (AlignedNonVirtualTypeSize == Layout.getSize().getQuantity()) {
+ uint64_t RecordSizeInBits = Layout.getSize().getQuantity();
+ if (AlignedNonVirtualTypeSize == RecordSizeInBits) {
NonVirtualBaseTypeIsSameAsCompleteType = true;
return true;
}