Skip to content

Commit 3b639e4

Browse files
test.
1 parent 62f3e26 commit 3b639e4

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

clang/lib/CIR/Dialect/IR/CIRTypes.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -569,22 +569,28 @@ uint64_t RecordType::getElementOffset(const ::mlir::DataLayout &dataLayout,
569569
assert(idx < getNumElements());
570570
auto members = getMembers();
571571

572-
unsigned offset = 0, recordSize = 0;
572+
// unsigned offset = 0, recordSize = 0;
573+
unsigned offset = 0;
573574

574-
for (unsigned i = 0, e = idx; i != e + 1; ++i) {
575+
// for (unsigned i = 0, e = idx; i != e + 1; ++i) {
576+
for (unsigned i = 0, e = idx; i != e; ++i) {
575577
auto ty = members[i];
576578

577579
// This matches LLVM since it uses the ABI instead of preferred alignment.
578580
const llvm::Align tyAlign =
579581
llvm::Align(getPacked() ? 1 : dataLayout.getTypeABIAlignment(ty));
580582

581583
// Add padding if necessary to align the data element properly.
584+
/*
582585
recordSize = llvm::alignTo(recordSize, tyAlign);
583586
if (i == idx)
584587
offset = recordSize;
588+
*/
589+
offset = llvm::alignTo(offset, tyAlign);
585590

586591
// Consume space for this data item
587-
recordSize += dataLayout.getTypeSize(ty);
592+
// recordSize += dataLayout.getTypeSize(ty);
593+
offset += dataLayout.getTypeSize(ty);
588594
}
589595

590596
// Account for padding, if necessary, for the alignment of the field whose

clang/test/CIR/Lowering/ThroughMLIR/struct.cir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ module {
2222
// CHECK: %view_0 = memref.view %[[alloca]][%[[four]]][] : memref<8xi8> to memref<i32>
2323
// CHECK: return
2424
// CHECK: }
25-
}
25+
}

0 commit comments

Comments
 (0)