diff options
| author | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2018-12-17 16:47:26 +0100 |
|---|---|---|
| committer | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2018-12-17 16:47:26 +0100 |
| commit | 3e7a4ca2f1d576a4a23e8c541cb5c0c420b108de (patch) | |
| tree | 16690e6affa035bfb0f4c7ec07edcb352950cf98 | |
| parent | 640c7ff4323ca11ceffb18fdd9c6d02f5a0ce3af (diff) | |
| download | rust-3e7a4ca2f1d576a4a23e8c541cb5c0c420b108de.tar.gz rust-3e7a4ca2f1d576a4a23e8c541cb5c0c420b108de.zip | |
Remove a wrong multiplier on relocation offset computation
| -rw-r--r-- | src/librustc_mir/interpret/memory.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/consts/promoted_regression.rs | 9 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/librustc_mir/interpret/memory.rs b/src/librustc_mir/interpret/memory.rs index 420fe264263..65347a02be0 100644 --- a/src/librustc_mir/interpret/memory.rs +++ b/src/librustc_mir/interpret/memory.rs @@ -707,10 +707,10 @@ impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> { new_relocations.extend( relocations .iter() - .map(|&(offset, reloc)| { - (offset + dest.offset - src.offset + (i * size * relocations.len() as u64), - reloc) - }) + .map(|&(offset, reloc)| ( + offset + dest.offset - src.offset + (i * size), + reloc, + )) ); } diff --git a/src/test/ui/consts/promoted_regression.rs b/src/test/ui/consts/promoted_regression.rs new file mode 100644 index 00000000000..68b9a20ecf9 --- /dev/null +++ b/src/test/ui/consts/promoted_regression.rs @@ -0,0 +1,9 @@ +// compile-pass + +fn main() { + let _ = &[("", ""); 3]; +} + +const FOO: &[(&str, &str)] = &[("", ""); 3]; +const BAR: &[(&str, &str); 5] = &[("", ""); 5]; +const BAA: &[[&str; 12]; 11] = &[[""; 12]; 11]; |
