diff options
| author | Austin Hicks <camlorn@camlorn.net> | 2016-11-26 14:37:15 -0500 |
|---|---|---|
| committer | Austin Hicks <camlorn@camlorn.net> | 2016-12-14 12:28:25 -0500 |
| commit | cfe1a776ee77697b5947849a71b411978eb23a28 (patch) | |
| tree | 41e9620fa08a655756832de27f8f2ee5211c17a4 /src/librustc/session/code_stats.rs | |
| parent | 025456e8a4e418813edf77bd9c1e69213276d447 (diff) | |
Fix -Z print-type-sizes and tests.
This was done by sorting the fields by increasing offset; as a consequence, the order of -Z print-type-sizes matches memory order not source order.
Diffstat (limited to 'src/librustc/session/code_stats.rs')
| -rw-r--r-- | src/librustc/session/code_stats.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/librustc/session/code_stats.rs b/src/librustc/session/code_stats.rs index 8308c54d70b..a042b2abf3a 100644 --- a/src/librustc/session/code_stats.rs +++ b/src/librustc/session/code_stats.rs @@ -142,7 +142,12 @@ impl CodeStats { max_variant_size = cmp::max(max_variant_size, size); let mut min_offset = discr_size; - for field in fields { + + // We want to print fields by increasing offset. + let mut fields = fields.clone(); + fields.sort_by_key(|f| f.offset); + + for field in fields.iter() { let FieldInfo { ref name, offset, size, align } = *field; // Include field alignment in output only if it caused padding injection |
