added test, Operand::const_from_scalar, require_lang_item, & comments

Addresses feedback from @oli-obk (Thanks!)
This commit is contained in:
Rich Kadel
2020-06-10 09:54:02 -07:00
parent 46ebd57c42
commit 20aba8f634
6 changed files with 186 additions and 37 deletions

View File

@@ -0,0 +1,82 @@
- // MIR for `main` before InstrumentCoverage
+ // MIR for `main` after InstrumentCoverage
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/instrument_coverage.rs:8:11: 8:11
let mut _1: (); // in scope 0 at $DIR/instrument_coverage.rs:8:1: 14:2
let mut _2: bool; // in scope 0 at $DIR/instrument_coverage.rs:10:12: 10:17
let mut _3: !; // in scope 0 at $DIR/instrument_coverage.rs:10:18: 12:10
+ let mut _4: (); // in scope 0 at $DIR/instrument_coverage.rs:8:1: 14:2
bb0: {
- falseUnwind -> [real: bb1, cleanup: bb6]; // scope 0 at $DIR/instrument_coverage.rs:9:5: 13:6
+ StorageLive(_4); // scope 0 at $DIR/instrument_coverage.rs:8:1: 14:2
+ _4 = const std::intrinsics::count_code_region(const 0u32) -> bb7; // scope 0 at $DIR/instrument_coverage.rs:8:1: 14:2
+ // ty::Const
+ // + ty: unsafe extern "rust-intrinsic" fn(u32) {std::intrinsics::count_code_region}
+ // + val: Value(Scalar(<ZST>))
+ // mir::Constant
+ // + span: $DIR/instrument_coverage.rs:8:1: 8:1
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(u32) {std::intrinsics::count_code_region}, val: Value(Scalar(<ZST>)) }
+ // ty::Const
+ // + ty: u32
+ // + val: Value(Scalar(0x00000000))
+ // mir::Constant
+ // + span: $DIR/instrument_coverage.rs:8:1: 8:1
+ // + literal: Const { ty: u32, val: Value(Scalar(0x00000000)) }
}
bb1: {
StorageLive(_2); // scope 0 at $DIR/instrument_coverage.rs:10:12: 10:17
_2 = const bar() -> [return: bb2, unwind: bb6]; // scope 0 at $DIR/instrument_coverage.rs:10:12: 10:17
// ty::Const
// + ty: fn() -> bool {bar}
// + val: Value(Scalar(<ZST>))
// mir::Constant
// + span: $DIR/instrument_coverage.rs:10:12: 10:15
// + literal: Const { ty: fn() -> bool {bar}, val: Value(Scalar(<ZST>)) }
}
bb2: {
FakeRead(ForMatchedPlace, _2); // scope 0 at $DIR/instrument_coverage.rs:10:12: 10:17
switchInt(_2) -> [false: bb4, otherwise: bb3]; // scope 0 at $DIR/instrument_coverage.rs:10:9: 12:10
}
bb3: {
falseEdges -> [real: bb5, imaginary: bb4]; // scope 0 at $DIR/instrument_coverage.rs:10:9: 12:10
}
bb4: {
_1 = const (); // scope 0 at $DIR/instrument_coverage.rs:10:9: 12:10
// ty::Const
// + ty: ()
// + val: Value(Scalar(<ZST>))
// mir::Constant
// + span: $DIR/instrument_coverage.rs:10:9: 12:10
// + literal: Const { ty: (), val: Value(Scalar(<ZST>)) }
StorageDead(_2); // scope 0 at $DIR/instrument_coverage.rs:13:5: 13:6
goto -> bb0; // scope 0 at $DIR/instrument_coverage.rs:9:5: 13:6
}
bb5: {
_0 = const (); // scope 0 at $DIR/instrument_coverage.rs:11:13: 11:18
// ty::Const
// + ty: ()
// + val: Value(Scalar(<ZST>))
// mir::Constant
// + span: $DIR/instrument_coverage.rs:11:13: 11:18
// + literal: Const { ty: (), val: Value(Scalar(<ZST>)) }
StorageDead(_2); // scope 0 at $DIR/instrument_coverage.rs:13:5: 13:6
return; // scope 0 at $DIR/instrument_coverage.rs:14:2: 14:2
}
bb6 (cleanup): {
resume; // scope 0 at $DIR/instrument_coverage.rs:8:1: 14:2
+ }
+
+ bb7: {
+ StorageDead(_4); // scope 0 at $DIR/instrument_coverage.rs:9:5: 13:6
+ falseUnwind -> [real: bb1, cleanup: bb6]; // scope 0 at $DIR/instrument_coverage.rs:9:5: 13:6
}
}