Skip to content

Internal compiler error on mutable stable slice #46604

Closed
@EPashkin

Description

@EPashkin

Internal compiler error on
rustc 1.22.1 (05e2e1c 2017-11-22) running on x86_64-pc-windows-gnu
rustc 1.24.0-nightly (0a2e9ad 2017-11-29) running on x86_64-pc-windows-gnu
also on playground
rustc 1.22.1 (05e2e1c 2017-11-22) running on x86_64-unknown-linux-gnu
rustc 1.23.0-beta.2 (c9107ee 2017-12-08) running on x86_64-unknown-linux-gnu
rustc 1.24.0-nightly (ad3543d 2017-12-08) running on x86_64-unknown-linux-gnu

I tried this code in empty lib crate:

static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];

fn tst() {
    unsafe {
        write(&buf);
        buf[0]=2;
    }
}

fn write<T: AsRef<[u8]>/* + Send*/>(buffer: T) { }

I expected see only message "statics require immutable values".
Instead I see

error[E0017]: references in statics may only refer to immutable values
 --> lib.rs:1:25
  |
1 | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];
  |                         ^^^^^^^^^^^^^^^^^^^^ statics require immutable values

error[E0017]: references in statics may only refer to immutable values
 --> lib.rs:1:25
  |
1 | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];
  |                         ^^^^^^^^^^^^^^^^^^^^ statics require immutable values

error: internal compiler error: src\librustc_borrowck\borrowck\mod.rs:1050: aliasability violation for static `cannot assign to data`
 --> lib.rs:6:9
  |
6 |         buf[0]=2;
  |         ^^^^^^^^

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.22.1 (05e2e1c41 2017-11-22) running on x86_64-pc-windows-gnu

note: run with `RUST_BACKTRACE=1` for a backtrace

thread 'rustc' panicked at 'Box<Any>', src\librustc_errors\lib.rs:439:8
stack backtrace:
   0: mingw_set_invalid_parameter_handler
   1: mingw_set_invalid_parameter_handler
   2: mingw_set_invalid_parameter_handler
   3: mingw_set_invalid_parameter_handler
   4: mingw_set_invalid_parameter_handler
   5: mingw_set_invalid_parameter_handler
   6: mingw_set_invalid_parameter_handler
   7: mingw_set_invalid_parameter_handler
   8: mingw_set_invalid_parameter_handler
   9: mingw_set_invalid_parameter_handler
  10: mingw_set_invalid_parameter_handler
  11: mingw_set_invalid_parameter_handler
  12: mingw_set_invalid_parameter_handler
  13: mingw_set_invalid_parameter_handler
  14: mingw_set_invalid_parameter_handler
  15: mingw_set_invalid_parameter_handler
  16: mingw_set_invalid_parameter_handler
  17: mingw_set_invalid_parameter_handler
  18: mingw_set_invalid_parameter_handler
  19: mingw_set_invalid_parameter_handler
  20: mingw_set_invalid_parameter_handler
  21: mingw_set_invalid_parameter_handler
  22: mingw_set_invalid_parameter_handler
  23: mingw_set_invalid_parameter_handler
  24: mingw_set_invalid_parameter_handler
  25: mingw_set_invalid_parameter_handler
  26: mingw_set_invalid_parameter_handler
  27: mingw_set_invalid_parameter_handler
  28: mingw_set_invalid_parameter_handler
  29: mingw_set_invalid_parameter_handler
  30: mingw_set_invalid_parameter_handler
  31: mingw_set_invalid_parameter_handler
  32: mingw_set_invalid_parameter_handler
  33: mingw_set_invalid_parameter_handler
  34: mingw_set_invalid_parameter_handler
  35: mingw_set_invalid_parameter_handler

Full version:
rustc 1.22.1 (05e2e1c 2017-11-22)
binary: rustc
commit-hash: 05e2e1c
commit-date: 2017-11-22
host: x86_64-pc-windows-gnu
release: 1.22.1
LLVM version: 4.0

rustc 1.24.0-nightly (0a2e9ad 2017-11-29)
binary: rustc
commit-hash: 0a2e9ad
commit-date: 2017-11-29
host: x86_64-pc-windows-gnu
release: 1.24.0-nightly
LLVM version: 4.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions