Skip to content

Commit

Permalink
miri-unleashed: test that we detect heap allocations
Browse files Browse the repository at this point in the history
  • Loading branch information
RalfJung committed Apr 18, 2020
1 parent 76cb95e commit cf3470a
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
2 changes: 0 additions & 2 deletions src/librustc_mir/transform/check_consts/ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,6 @@ impl NonConstOp for FnCallUnstable {
#[derive(Debug)]
pub struct HeapAllocation;
impl NonConstOp for HeapAllocation {
const IS_SUPPORTED_IN_MIRI: bool = false;

fn emit_error(&self, item: &Item<'_, '_>, span: Span) {
let mut err = struct_span_err!(
item.tcx.sess,
Expand Down
14 changes: 14 additions & 0 deletions src/test/ui/consts/miri_unleashed/box.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// compile-flags: -Zunleash-the-miri-inside-of-you
#![feature(const_mut_refs, box_syntax)]
#![deny(const_err)]

use std::mem::ManuallyDrop;

fn main() {}

static TEST_BAD: &mut i32 = {
&mut *(box 0)
//~^ WARN skipping const check
//~| ERROR could not evaluate static initializer
//~| NOTE heap allocations
};
15 changes: 15 additions & 0 deletions src/test/ui/consts/miri_unleashed/box.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
warning: skipping const checks
--> $DIR/box.rs:10:11
|
LL | &mut *(box 0)
| ^^^^^^^

error[E0080]: could not evaluate static initializer
--> $DIR/box.rs:10:11
|
LL | &mut *(box 0)
| ^^^^^^^ "heap allocations via `box` keyword" needs an rfc before being allowed inside constants

error: aborting due to previous error; 1 warning emitted

For more information about this error, try `rustc --explain E0080`.

0 comments on commit cf3470a

Please sign in to comment.