Skip to content

Commit b452c43

Browse files
nikomatsakisbkchr
authored andcommitted
avoid ICE when fields are not laid out in order
1 parent d7918fb commit b452c43

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/librustc/session/code_stats.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,19 @@ impl CodeStats {
155155

156156
// Include field alignment in output only if it caused padding injection
157157
if min_offset != offset {
158-
let pad = offset - min_offset;
159-
println!("print-type-size {}padding: {} bytes",
160-
indent, pad);
161-
println!("print-type-size {}field `.{}`: {} bytes, alignment: {} bytes",
162-
indent, name, size, align);
158+
if offset > min_offset {
159+
let pad = offset - min_offset;
160+
println!("print-type-size {}padding: {} bytes",
161+
indent, pad);
162+
println!("print-type-size {}field `.{}`: {} bytes, \
163+
alignment: {} bytes",
164+
indent, name, size, align);
165+
} else {
166+
println!("print-type-size {}field `.{}`: {} bytes, \
167+
offset: {} bytes, \
168+
alignment: {} bytes",
169+
indent, name, size, offset, align);
170+
}
163171
} else {
164172
println!("print-type-size {}field `.{}`: {} bytes",
165173
indent, name, size);

0 commit comments

Comments
 (0)