diff options
| author | Ralf Jung <post@ralfj.de> | 2019-02-21 16:14:31 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2019-02-21 16:14:31 +0100 |
| commit | b01f81be7445ca83a8a9fd51937e3047c22eea09 (patch) | |
| tree | 2948a116d2ed2a9b42bebe99a9d95a6c490a5de1 | |
| parent | 0f6d36375f76f31a5252b8b8ab5faaafb374e721 (diff) | |
| download | rust-b01f81be7445ca83a8a9fd51937e3047c22eea09.tar.gz rust-b01f81be7445ca83a8a9fd51937e3047c22eea09.zip | |
remark about the one place where place computation calls size_and_align_of
| -rw-r--r-- | src/librustc_mir/interpret/place.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc_mir/interpret/place.rs b/src/librustc_mir/interpret/place.rs index 637f1dcc4a4..ec701a939f2 100644 --- a/src/librustc_mir/interpret/place.rs +++ b/src/librustc_mir/interpret/place.rs @@ -389,9 +389,11 @@ where // above). In that case, all fields are equal. let field_layout = base.layout.field(self, usize::try_from(field).unwrap_or(0))?; - // Offset may need adjustment for unsized fields + // Offset may need adjustment for unsized fields. let (meta, offset) = if field_layout.is_unsized() { - // re-use parent metadata to determine dynamic field layout + // Re-use parent metadata to determine dynamic field layout. + // With custom DSTS, this *will* execute user-defined code, but the same + // happens at run-time so that's okay. let align = match self.size_and_align_of(base.meta, field_layout)? { Some((_, align)) => align, None if offset == Size::ZERO => |
