Skip to content
This repository has been archived by the owner on May 23, 2024. It is now read-only.

ices/99325.sh: fixed with no errors #1360

Merged
merged 1 commit into from
Jul 28, 2022
Merged

Conversation

github-actions[bot]
Copy link
Contributor

Issue: rust-lang/rust#99325

#!/bin/bash

rustc -Zunpretty=mir - <<'EOF'

#![feature(adt_const_params)]
#![allow(incomplete_features)]

pub fn function_with_bytes<const BYTES: &'static [u8; 4]>() -> &'static [u8] {
    BYTES
}

pub fn main() {
    assert_eq!(function_with_bytes::<b"AAAA">(), &[0x41, 0x41, 0x41, 0x41]);
    assert_eq!(function_with_bytes::<{ &[0x41, 0x41, 0x41, 0x41] }>(), b"AAAA");
}

EOF

=== stdout ===
// WARNING: This output format is intended for human consumers only
// and is subject to change without notice. Knock yourself out.
fn function_with_bytes() -> &[u8] {
    let mut _0: &[u8];                   // return place in scope 0 at <anon>:5:64: 5:77
    let mut _1: &[u8; 4];                // in scope 0 at <anon>:6:5: 6:10
    let _2: &[u8; 4];                    // in scope 0 at <anon>:6:5: 6:10

    bb0: {
        _2 = const BYTES;                // scope 0 at <anon>:6:5: 6:10
                                         // mir::Constant
                                         // + span: <anon>:6:5: 6:10
                                         // + literal: Const { ty: &[u8; 4], val: Param(BYTES) }
        _1 = _2;                         // scope 0 at <anon>:6:5: 6:10
        _0 = move _1 as &[u8] (Pointer(Unsize)); // scope 0 at <anon>:6:5: 6:10
        return;                          // scope 0 at <anon>:7:2: 7:2
    }
}

function_with_bytes::{constant#0}: usize = {
    let mut _0: usize;                   // return place in scope 0 at <anon>:5:55: 5:56

    bb0: {
        _0 = const 4_usize;              // scope 0 at <anon>:5:55: 5:56
        return;                          // scope 0 at <anon>:5:55: 5:56
    }
}

fn main() -> () {
    let mut _0: ();                      // return place in scope 0 at <anon>:9:15: 9:15
    let mut _1: (&&[u8], &&[u8; 4]);     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
    let mut _2: &&[u8];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
    let _3: &[u8];                       // in scope 0 at <anon>:10:16: 10:48
    let mut _4: &&[u8; 4];               // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let _5: &&[u8];                      // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
    let _6: &&[u8; 4];                   // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
    let mut _7: bool;                    // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    let mut _8: bool;                    // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
    let mut _9: &&[u8];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
    let mut _10: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
    let _12: !;                          // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
    let mut _13: core::panicking::AssertKind; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
    let mut _14: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let _15: &&[u8];                     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let mut _16: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let _17: &&[u8; 4];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let mut _18: std::option::Option<std::fmt::Arguments>; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
    let mut _19: (&&[u8], &&[u8; 4]);    // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
    let mut _20: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
    let _21: &[u8];                      // in scope 0 at <anon>:11:16: 11:70
    let mut _22: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let _23: &&[u8];                     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
    let _24: &&[u8; 4];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
    let mut _25: bool;                   // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    let mut _26: bool;                   // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
    let mut _27: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
    let mut _28: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
    let _30: !;                          // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
    let mut _31: core::panicking::AssertKind; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
    let mut _32: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let _33: &&[u8];                     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let mut _34: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let _35: &&[u8; 4];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let mut _36: std::option::Option<std::fmt::Arguments>; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
    let mut _37: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let mut _38: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    scope 1 {
        debug left_val => _5;            // in scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        debug right_val => _6;           // in scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        let _11: core::panicking::AssertKind; // in scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        scope 2 {
            debug kind => _11;           // in scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        }
    }
    scope 3 {
        debug left_val => _23;           // in scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        debug right_val => _24;          // in scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        let _29: core::panicking::AssertKind; // in scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        scope 4 {
            debug kind => _29;           // in scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        }
    }

    bb0: {
        _3 = function_with_bytes::<&*b"AAAA">() -> bb1; // scope 0 at <anon>:10:16: 10:48
                                         // mir::Constant
                                         // + span: <anon>:10:16: 10:46
                                         // + user_ty: UserType(0)
                                         // + literal: Const { ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}, val: Value(<ZST>) }
    }

    bb1: {
        _2 = &_3;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
        _38 = const main::promoted[1];   // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // + literal: Const { ty: &&[u8; 4], val: Unevaluated(main, [], Some(promoted[1])) }
        _4 = _38;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        Deinit(_1);                      // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_1.0: &&[u8]) = move _2;        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_1.1: &&[u8; 4]) = move _4;     // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        _5 = (_1.0: &&[u8]);             // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        _6 = (_1.1: &&[u8; 4]);          // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        _9 = _5;                         // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
        _10 = _6;                        // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
        _8 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _9, move _10) -> bb2; // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // + literal: Const { ty: for<'r, 's> fn(&'r &[u8], &'s &[u8; 4]) -> bool {<&[u8] as PartialEq<&[u8; 4]>>::eq}, val: Value(<ZST>) }
    }

    bb2: {
        _7 = Not(move _8);               // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
        switchInt(move _7) -> [false: bb4, otherwise: bb3]; // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    }

    bb3: {
        Deinit(_11);                     // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        discriminant(_11) = 0;           // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        _13 = const core::panicking::AssertKind::Eq; // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
        _15 = _5;                        // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _14 = _15;                       // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _17 = _6;                        // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        _16 = _17;                       // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        Deinit(_18);                     // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        discriminant(_18) = 0;           // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        _12 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _13, move _14, move _16, move _18); // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:53
                                         // + literal: Const { ty: for<'r, 's, 't0> fn(core::panicking::AssertKind, &'r &[u8], &'s &[u8; 4], Option<Arguments<'t0>>) -> ! {core::panicking::assert_failed::<&[u8], &[u8; 4]>}, val: Value(<ZST>) }
    }

    bb4: {
        _21 = function_with_bytes::<&*b"AAAA">() -> bb5; // scope 0 at <anon>:11:16: 11:70
                                         // mir::Constant
                                         // + span: <anon>:11:16: 11:68
                                         // + user_ty: UserType(1)
                                         // + literal: Const { ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}, val: Value(<ZST>) }
    }

    bb5: {
        _20 = &_21;                      // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
        _37 = const main::promoted[0];   // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // + literal: Const { ty: &&[u8; 4], val: Unevaluated(main, [], Some(promoted[0])) }
        _22 = _37;                       // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        Deinit(_19);                     // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_19.0: &&[u8]) = move _20;      // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_19.1: &&[u8; 4]) = move _22;   // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        _23 = (_19.0: &&[u8]);           // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        _24 = (_19.1: &&[u8; 4]);        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        _27 = _23;                       // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
        _28 = _24;                       // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
        _26 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _27, move _28) -> bb6; // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // + literal: Const { ty: for<'r, 's> fn(&'r &[u8], &'s &[u8; 4]) -> bool {<&[u8] as PartialEq<&[u8; 4]>>::eq}, val: Value(<ZST>) }
    }

    bb6: {
        _25 = Not(move _26);             // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
        switchInt(move _25) -> [false: bb8, otherwise: bb7]; // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    }

    bb7: {
        Deinit(_29);                     // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        discriminant(_29) = 0;           // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        _31 = const core::panicking::AssertKind::Eq; // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
        _33 = _23;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _32 = _33;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _35 = _24;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        _34 = _35;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        Deinit(_36);                     // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        discriminant(_36) = 0;           // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        _30 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _31, move _32, move _34, move _36); // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:53
                                         // + literal: Const { ty: for<'r, 's, 't0> fn(core::panicking::AssertKind, &'r &[u8], &'s &[u8; 4], Option<Arguments<'t0>>) -> ! {core::panicking::assert_failed::<&[u8], &[u8; 4]>}, val: Value(<ZST>) }
    }

    bb8: {
        return;                          // scope 0 at <anon>:12:2: 12:2
    }
}

promoted[0] in main: &&[u8; 4] = {
    let mut _0: &&[u8; 4];               // return place in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let mut _1: &[u8; 4];                // in scope 0 at <anon>:11:72: 11:79

    bb0: {
        _1 = const b"AAAA";              // scope 0 at <anon>:11:72: 11:79
                                         // mir::Constant
                                         // + span: <anon>:11:72: 11:79
                                         // + literal: Const { ty: &[u8; 4], val: Value(Scalar(alloc4)) }
        _0 = &_1;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        return;                          // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    }
}

alloc4 (size: 4, align: 1) {
    41 41 41 41                                     │ AAAA
}

promoted[1] in main: &&[u8; 4] = {
    let mut _0: &&[u8; 4];               // return place in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let mut _1: &[u8; 4];                // in scope 0 at <anon>:10:50: 10:75
    let mut _2: [u8; 4];                 // in scope 0 at <anon>:10:51: 10:75

    bb0: {
        _2 = [const 65_u8, const 65_u8, const 65_u8, const 65_u8]; // scope 0 at <anon>:10:51: 10:75
        _1 = &_2;                        // scope 0 at <anon>:10:50: 10:75
        _0 = &_1;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        return;                          // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    }
}

main::{constant#0}: &[u8; 4] = {
    let mut _0: &[u8; 4];                // return place in scope 0 at <anon>:10:38: 10:45

    bb0: {
        _0 = const b"AAAA";              // scope 0 at <anon>:10:38: 10:45
                                         // mir::Constant
                                         // + span: <anon>:10:38: 10:45
                                         // + literal: Const { ty: &[u8; 4], val: Value(Scalar(alloc5)) }
        return;                          // scope 0 at <anon>:10:38: 10:45
    }
}

alloc5 (size: 4, align: 1) {
    41 41 41 41                                     │ AAAA
}

main::{constant#1}: &[u8; 4] = {
    let mut _0: &[u8; 4];                // return place in scope 0 at <anon>:11:38: 11:67
    let _1: &[u8; 4];                    // in scope 0 at <anon>:11:40: 11:65
    let _2: [u8; 4];                     // in scope 0 at <anon>:11:41: 11:65
    let mut _3: &[u8; 4];                // in scope 0 at <anon>:11:40: 11:65

    bb0: {
        StorageLive(_1);                 // scope 0 at <anon>:11:40: 11:65
        _3 = const main::{constant#1}::promoted[0]; // scope 0 at <anon>:11:40: 11:65
                                         // mir::Constant
                                         // + span: <anon>:11:40: 11:65
                                         // + literal: Const { ty: &[u8; 4], val: Unevaluated(main::{constant#1}, [], Some(promoted[0])) }
        _1 = &(*_3);                     // scope 0 at <anon>:11:40: 11:65
        _0 = &(*_1);                     // scope 0 at <anon>:11:40: 11:65
        StorageDead(_1);                 // scope 0 at <anon>:11:66: 11:67
        return;                          // scope 0 at <anon>:11:38: 11:67
    }
}

promoted[0] in main::{constant#1}: &[u8; 4] = {
    let mut _0: &[u8; 4];                // return place in scope 0 at <anon>:11:40: 11:65
    let mut _1: [u8; 4];                 // in scope 0 at <anon>:11:41: 11:65

    bb0: {
        _1 = [const 65_u8, const 65_u8, const 65_u8, const 65_u8]; // scope 0 at <anon>:11:41: 11:65
        _0 = &_1;                        // scope 0 at <anon>:11:40: 11:65
        return;                          // scope 0 at <anon>:11:40: 11:65
    }
}
=== stderr ===
==============

=== stdout ===
// WARNING: This output format is intended for human consumers only
// and is subject to change without notice. Knock yourself out.
fn function_with_bytes() -> &[u8] {
    let mut _0: &[u8];                   // return place in scope 0 at <anon>:5:64: 5:77
    let mut _1: &[u8; 4];                // in scope 0 at <anon>:6:5: 6:10
    let _2: &[u8; 4];                    // in scope 0 at <anon>:6:5: 6:10

    bb0: {
        _2 = const BYTES;                // scope 0 at <anon>:6:5: 6:10
                                         // mir::Constant
                                         // + span: <anon>:6:5: 6:10
                                         // + literal: Const { ty: &[u8; 4], val: Param(BYTES) }
        _1 = _2;                         // scope 0 at <anon>:6:5: 6:10
        _0 = move _1 as &[u8] (Pointer(Unsize)); // scope 0 at <anon>:6:5: 6:10
        return;                          // scope 0 at <anon>:7:2: 7:2
    }
}

function_with_bytes::{constant#0}: usize = {
    let mut _0: usize;                   // return place in scope 0 at <anon>:5:55: 5:56

    bb0: {
        _0 = const 4_usize;              // scope 0 at <anon>:5:55: 5:56
        return;                          // scope 0 at <anon>:5:55: 5:56
    }
}

fn main() -> () {
    let mut _0: ();                      // return place in scope 0 at <anon>:9:15: 9:15
    let mut _1: (&&[u8], &&[u8; 4]);     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
    let mut _2: &&[u8];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
    let _3: &[u8];                       // in scope 0 at <anon>:10:16: 10:48
    let mut _4: &&[u8; 4];               // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let _5: &&[u8];                      // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
    let _6: &&[u8; 4];                   // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
    let mut _7: bool;                    // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    let mut _8: bool;                    // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
    let mut _9: &&[u8];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
    let mut _10: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
    let _12: !;                          // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
    let mut _13: core::panicking::AssertKind; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
    let mut _14: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let _15: &&[u8];                     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let mut _16: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let _17: &&[u8; 4];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let mut _18: std::option::Option<std::fmt::Arguments>; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
    let mut _19: (&&[u8], &&[u8; 4]);    // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
    let mut _20: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
    let _21: &[u8];                      // in scope 0 at <anon>:11:16: 11:70
    let mut _22: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let _23: &&[u8];                     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
    let _24: &&[u8; 4];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
    let mut _25: bool;                   // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    let mut _26: bool;                   // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
    let mut _27: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
    let mut _28: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
    let _30: !;                          // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
    let mut _31: core::panicking::AssertKind; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
    let mut _32: &&[u8];                 // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let _33: &&[u8];                     // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
    let mut _34: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let _35: &&[u8; 4];                  // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
    let mut _36: std::option::Option<std::fmt::Arguments>; // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
    let mut _37: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let mut _38: &&[u8; 4];              // in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    scope 1 {
        debug left_val => _5;            // in scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        debug right_val => _6;           // in scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        let _11: core::panicking::AssertKind; // in scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        scope 2 {
            debug kind => _11;           // in scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        }
    }
    scope 3 {
        debug left_val => _23;           // in scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        debug right_val => _24;          // in scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        let _29: core::panicking::AssertKind; // in scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        scope 4 {
            debug kind => _29;           // in scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:25: 41:29
        }
    }

    bb0: {
        _3 = function_with_bytes::<&*b"AAAA">() -> bb1; // scope 0 at <anon>:10:16: 10:48
                                         // mir::Constant
                                         // + span: <anon>:10:16: 10:46
                                         // + user_ty: UserType(0)
                                         // + literal: Const { ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}, val: Value(<ZST>) }
    }

    bb1: {
        _2 = &_3;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
        _38 = const main::promoted[1];   // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // + literal: Const { ty: &&[u8; 4], val: Unevaluated(main, [], Some(promoted[1])) }
        _4 = _38;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        Deinit(_1);                      // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_1.0: &&[u8]) = move _2;        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_1.1: &&[u8; 4]) = move _4;     // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        _5 = (_1.0: &&[u8]);             // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        _6 = (_1.1: &&[u8; 4]);          // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        _9 = _5;                         // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
        _10 = _6;                        // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
        _8 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _9, move _10) -> bb2; // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // + literal: Const { ty: for<'r, 's> fn(&'r &[u8], &'s &[u8; 4]) -> bool {<&[u8] as PartialEq<&[u8; 4]>>::eq}, val: Value(<ZST>) }
    }

    bb2: {
        _7 = Not(move _8);               // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
        switchInt(move _7) -> [false: bb4, otherwise: bb3]; // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    }

    bb3: {
        Deinit(_11);                     // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        discriminant(_11) = 0;           // scope 1 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        _13 = const core::panicking::AssertKind::Eq; // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
        _15 = _5;                        // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _14 = _15;                       // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _17 = _6;                        // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        _16 = _17;                       // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        Deinit(_18);                     // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        discriminant(_18) = 0;           // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        _12 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _13, move _14, move _16, move _18); // scope 2 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:53
                                         // + literal: Const { ty: for<'r, 's, 't0> fn(core::panicking::AssertKind, &'r &[u8], &'s &[u8; 4], Option<Arguments<'t0>>) -> ! {core::panicking::assert_failed::<&[u8], &[u8; 4]>}, val: Value(<ZST>) }
    }

    bb4: {
        _21 = function_with_bytes::<&*b"AAAA">() -> bb5; // scope 0 at <anon>:11:16: 11:70
                                         // mir::Constant
                                         // + span: <anon>:11:16: 11:68
                                         // + user_ty: UserType(1)
                                         // + literal: Const { ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">}, val: Value(<ZST>) }
    }

    bb5: {
        _20 = &_21;                      // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:16: 38:22
        _37 = const main::promoted[0];   // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
                                         // + literal: Const { ty: &&[u8; 4], val: Unevaluated(main, [], Some(promoted[0])) }
        _22 = _37;                       // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        Deinit(_19);                     // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_19.0: &&[u8]) = move _20;      // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        (_19.1: &&[u8; 4]) = move _22;   // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:15: 38:32
        _23 = (_19.0: &&[u8]);           // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:14: 39:22
        _24 = (_19.1: &&[u8; 4]);        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:39:24: 39:33
        _27 = _23;                       // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:22: 40:31
        _28 = _24;                       // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:35: 40:45
        _26 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _27, move _28) -> bb6; // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:21: 40:46
                                         // + literal: Const { ty: for<'r, 's> fn(&'r &[u8], &'s &[u8; 4]) -> bool {<&[u8] as PartialEq<&[u8; 4]>>::eq}, val: Value(<ZST>) }
    }

    bb6: {
        _25 = Not(move _26);             // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
        switchInt(move _25) -> [false: bb8, otherwise: bb7]; // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:40:20: 40:46
    }

    bb7: {
        Deinit(_29);                     // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        discriminant(_29) = 0;           // scope 3 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:41:32: 41:65
        _31 = const core::panicking::AssertKind::Eq; // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:54: 45:58
                                         // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
        _33 = _23;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _32 = _33;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:60: 45:70
        _35 = _24;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        _34 = _35;                       // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:72: 45:83
        Deinit(_36);                     // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        discriminant(_36) = 0;           // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:85: 45:113
        _30 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _31, move _32, move _34, move _36); // scope 4 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:114
                                         // mir::Constant
                                         // + span: /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:45:21: 45:53
                                         // + literal: Const { ty: for<'r, 's, 't0> fn(core::panicking::AssertKind, &'r &[u8], &'s &[u8; 4], Option<Arguments<'t0>>) -> ! {core::panicking::assert_failed::<&[u8], &[u8; 4]>}, val: Value(<ZST>) }
    }

    bb8: {
        return;                          // scope 0 at <anon>:12:2: 12:2
    }
}

promoted[0] in main: &&[u8; 4] = {
    let mut _0: &&[u8; 4];               // return place in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let mut _1: &[u8; 4];                // in scope 0 at <anon>:11:72: 11:79

    bb0: {
        _1 = const b"AAAA";              // scope 0 at <anon>:11:72: 11:79
                                         // mir::Constant
                                         // + span: <anon>:11:72: 11:79
                                         // + literal: Const { ty: &[u8; 4], val: Value(Scalar(alloc4)) }
        _0 = &_1;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        return;                          // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    }
}

alloc4 (size: 4, align: 1) {
    41 41 41 41                                     │ AAAA
}

promoted[1] in main: &&[u8; 4] = {
    let mut _0: &&[u8; 4];               // return place in scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    let mut _1: &[u8; 4];                // in scope 0 at <anon>:10:50: 10:75
    let mut _2: [u8; 4];                 // in scope 0 at <anon>:10:51: 10:75

    bb0: {
        _2 = [const 65_u8, const 65_u8, const 65_u8, const 65_u8]; // scope 0 at <anon>:10:51: 10:75
        _1 = &_2;                        // scope 0 at <anon>:10:50: 10:75
        _0 = &_1;                        // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
        return;                          // scope 0 at /rustc/2643b16468fda787470340890212591d8bc832b7/library/core/src/macros/mod.rs:38:24: 38:31
    }
}

main::{constant#0}: &[u8; 4] = {
    let mut _0: &[u8; 4];                // return place in scope 0 at <anon>:10:38: 10:45

    bb0: {
        _0 = const b"AAAA";              // scope 0 at <anon>:10:38: 10:45
                                         // mir::Constant
                                         // + span: <anon>:10:38: 10:45
                                         // + literal: Const { ty: &[u8; 4], val: Value(Scalar(alloc5)) }
        return;                          // scope 0 at <anon>:10:38: 10:45
    }
}

alloc5 (size: 4, align: 1) {
    41 41 41 41                                     │ AAAA
}

main::{constant#1}: &[u8; 4] = {
    let mut _0: &[u8; 4];                // return place in scope 0 at <anon>:11:38: 11:67
    let _1: &[u8; 4];                    // in scope 0 at <anon>:11:40: 11:65
    let _2: [u8; 4];                     // in scope 0 at <anon>:11:41: 11:65
    let mut _3: &[u8; 4];                // in scope 0 at <anon>:11:40: 11:65

    bb0: {
        StorageLive(_1);                 // scope 0 at <anon>:11:40: 11:65
        _3 = const main::{constant#1}::promoted[0]; // scope 0 at <anon>:11:40: 11:65
                                         // mir::Constant
                                         // + span: <anon>:11:40: 11:65
                                         // + literal: Const { ty: &[u8; 4], val: Unevaluated(main::{constant#1}, [], Some(promoted[0])) }
        _1 = &(*_3);                     // scope 0 at <anon>:11:40: 11:65
        _0 = &(*_1);                     // scope 0 at <anon>:11:40: 11:65
        StorageDead(_1);                 // scope 0 at <anon>:11:66: 11:67
        return;                          // scope 0 at <anon>:11:38: 11:67
    }
}

promoted[0] in main::{constant#1}: &[u8; 4] = {
    let mut _0: &[u8; 4];                // return place in scope 0 at <anon>:11:40: 11:65
    let mut _1: [u8; 4];                 // in scope 0 at <anon>:11:41: 11:65

    bb0: {
        _1 = [const 65_u8, const 65_u8, const 65_u8, const 65_u8]; // scope 0 at <anon>:11:41: 11:65
        _0 = &_1;                        // scope 0 at <anon>:11:40: 11:65
        return;                          // scope 0 at <anon>:11:40: 11:65
    }
}
=== stderr ===
==============
@Alexendoo Alexendoo merged commit 59c8820 into master Jul 28, 2022
@Alexendoo Alexendoo deleted the autofix/ices/99325.sh branch July 28, 2022 11:17
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants