avoid ICE when fields are not laid out in order
This commit is contained in:
parent
d7918fb2e8
commit
b452c432cd
1 changed files with 13 additions and 5 deletions
|
@ -155,11 +155,19 @@ impl CodeStats {
|
|||
|
||||
// Include field alignment in output only if it caused padding injection
|
||||
if min_offset != offset {
|
||||
let pad = offset - min_offset;
|
||||
println!("print-type-size {}padding: {} bytes",
|
||||
indent, pad);
|
||||
println!("print-type-size {}field `.{}`: {} bytes, alignment: {} bytes",
|
||||
indent, name, size, align);
|
||||
if offset > min_offset {
|
||||
let pad = offset - min_offset;
|
||||
println!("print-type-size {}padding: {} bytes",
|
||||
indent, pad);
|
||||
println!("print-type-size {}field `.{}`: {} bytes, \
|
||||
alignment: {} bytes",
|
||||
indent, name, size, align);
|
||||
} else {
|
||||
println!("print-type-size {}field `.{}`: {} bytes, \
|
||||
offset: {} bytes, \
|
||||
alignment: {} bytes",
|
||||
indent, name, size, offset, align);
|
||||
}
|
||||
} else {
|
||||
println!("print-type-size {}field `.{}`: {} bytes",
|
||||
indent, name, size);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue