Auto merge of #74821 - oli-obk:const_eval_read_uninit_fast_path, r=wesleywiser

Check whether locals are too large instead of whether accesses into them are too large

Essentially this stops const prop from attempting to optimize

```rust
let mut x = [0_u8; 5000];
x[42] = 3;
```

I don't expect this to be a perf improvement without #73656 (which is also where the lack of this PR will be a perf regression).

r? @wesleywiser
This commit is contained in:
bors 2020-08-07 15:28:07 +00:00
commit a7fa264ae7

View File

@ -1,23 +1,3 @@
error: this operation will panic at runtime
--> $DIR/indexing_slicing_index.rs:11:5
|
LL | x[4]; // Ok, let rustc's `const_err` lint handle `usize` indexing on arrays.
| ^^^^ index out of bounds: the len is 4 but the index is 4
|
= note: `#[deny(unconditional_panic)]` on by default
error: this operation will panic at runtime
--> $DIR/indexing_slicing_index.rs:12:5
|
LL | x[1 << 3]; // Ok, let rustc's `const_err` lint handle `usize` indexing on arrays.
| ^^^^^^^^^ index out of bounds: the len is 4 but the index is 8
error: this operation will panic at runtime
--> $DIR/indexing_slicing_index.rs:27:5
|
LL | x[N]; // Ok, let rustc's `const_err` lint handle `usize` indexing on arrays.
| ^^^^ index out of bounds: the len is 4 but the index is 15
error: indexing may panic.
--> $DIR/indexing_slicing_index.rs:10:5
|
@ -75,5 +55,5 @@ LL | v[M];
|
= help: Consider using `.get(n)` or `.get_mut(n)` instead
error: aborting due to 10 previous errors
error: aborting due to 7 previous errors