Skip to content

ICE: -Zprint-type-sizes: generators: overlap-locals.rs #105591

Closed

Description

@matthiaskrgr

Code

from src/test/ui/generator/overlap-locals.rs

// run-pass

#![feature(generators)]

fn main() {
    let a = || {
        {
            let w: i32 = 4;
            yield;
            println!("{:?}", w);
        }
        {
            let z: i32 = 7;
            yield;
            println!("{:?}", z);
        }
    };
    assert_eq!(8, std::mem::size_of_val(&a));
}

Meta

rustc --version --verbose:

rustc 1.68.0-nightly (bdb07a8ec 2022-12-11)
binary: rustc
commit-hash: bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4
commit-date: 2022-12-11
host: x86_64-unknown-linux-gnu
release: 1.68.0-nightly
LLVM version: 15.0.6

Error output

rustc src/test/ui/generator/overlap-locals.rs -Zprint-type-sizes

<output>
Backtrace

print-type-size type: `std::fmt::Formatter<'_>`: 64 bytes, alignment: 8 bytes
print-type-size     field `.buf`: 16 bytes
print-type-size     field `.width`: 16 bytes
print-type-size     field `.precision`: 16 bytes
print-type-size     field `.flags`: 4 bytes
print-type-size     field `.fill`: 4 bytes
print-type-size     field `.align`: 1 bytes
print-type-size     end padding: 7 bytes
print-type-size type: `std::fmt::Arguments<'_>`: 48 bytes, alignment: 8 bytes
print-type-size     field `.fmt`: 16 bytes
print-type-size     field `.pieces`: 16 bytes
print-type-size     field `.args`: 16 bytes
print-type-size type: `std::option::Option<std::fmt::Arguments<'_>>`: 48 bytes, alignment: 8 bytes
print-type-size     variant `Some`: 48 bytes
print-type-size         field `.0`: 48 bytes
print-type-size     variant `None`: 0 bytes
print-type-size type: `unwind::libunwind::_Unwind_Exception`: 32 bytes, alignment: 8 bytes
print-type-size     field `.exception_class`: 8 bytes
print-type-size     field `.exception_cleanup`: 8 bytes
print-type-size     field `.private`: 16 bytes
print-type-size type: `std::panic::Location<'_>`: 24 bytes, alignment: 8 bytes
print-type-size     field `.file`: 16 bytes
print-type-size     field `.line`: 4 bytes
print-type-size     field `.col`: 4 bytes
print-type-size type: `std::option::Option<&[std::fmt::rt::v1::Argument]>`: 16 bytes, alignment: 8 bytes
print-type-size     variant `Some`: 16 bytes
print-type-size         field `.0`: 16 bytes
print-type-size     variant `None`: 0 bytes
print-type-size type: `std::option::Option<usize>`: 16 bytes, alignment: 8 bytes
print-type-size     discriminant: 8 bytes
print-type-size     variant `Some`: 8 bytes
print-type-size         field `.0`: 8 bytes
print-type-size     variant `None`: 0 bytes
print-type-size type: `[closure@std::rt::lang_start<()>::{closure#0}]`: 8 bytes, alignment: 8 bytes
print-type-size     end padding: 8 bytes
print-type-size type: `[generator@/home/matthias/vcs/github/rust/src/test/ui/generator/overlap-locals.rs:6:13: 6:15]`: 8 bytes, alignment: 4 bytes
print-type-size     discriminant: 1 bytes
print-type-size     variant `Suspend0`: 8 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.w`: 4 bytes, alignment: 4 bytes
print-type-size     variant `Suspend1`: 8 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.z`: 4 bytes, alignment: 4 bytes
print-type-size     variant `Unresumed`: 0 bytes
print-type-size     variant `Returned`: 0 bytes
print-type-size     variant `Panicked`: 0 bytes
thread '<unnamed>' panicked at 'max_variant_size 9 > 8 overall_size', compiler/rustc_session/src/code_stats.rs:177:25
stack backtrace:
   0:     0x7fb6295667da - std::backtrace_rs::backtrace::libunwind::trace::h3bfe63c4aecfa0e2
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fb6295667da - std::backtrace_rs::backtrace::trace_unsynchronized::h978c02637c6cb8f9
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fb6295667da - std::sys_common::backtrace::_print_fmt::h86a708dcb1665377
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fb6295667da - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hdbf89765373fb801
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fb6295c92ee - core::fmt::write::hbf11a3bb4e6d2aba
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/core/src/fmt/mod.rs:1208:17
   5:     0x7fb629556c65 - std::io::Write::write_fmt::hd68261eacc348bbd
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/io/mod.rs:1682:15
   6:     0x7fb6295665a5 - std::sys_common::backtrace::_print::ha8e375b58cdeca4a
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7fb6295665a5 - std::sys_common::backtrace::print::he3086c07df1167ca
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7fb6295692ef - std::panicking::default_hook::{{closure}}::h0c12a9095c948e43
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/panicking.rs:267:22
   9:     0x7fb62956902b - std::panicking::default_hook::h1ae5478ad617eb24
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/panicking.rs:286:9
  10:     0x7fb629569b0c - std::panicking::rust_panic_with_hook::h63a24f957ccb5d93
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/panicking.rs:688:13
  11:     0x7fb6295698a9 - std::panicking::begin_panic_handler::{{closure}}::h1499194b322f3b28
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/panicking.rs:579:13
  12:     0x7fb629566c8c - std::sys_common::backtrace::__rust_end_short_backtrace::h5569dab7b5c29ca8
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/sys_common/backtrace.rs:137:18
  13:     0x7fb6295695b2 - rust_begin_unwind
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/panicking.rs:575:5
  14:     0x7fb6295c5cd3 - core::panicking::panic_fmt::h81b99a9e904184d4
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/core/src/panicking.rs:64:14
  15:     0x7fb62d29e324 - <rustc_session[8c69ddbebe7c913d]::code_stats::CodeStats>::print_type_sizes
  16:     0x7fb62ba7f3ce - <rustc_interface[649c07bcaa826da7]::interface::Compiler>::enter::<rustc_driver[c8d19d3afee4bdc9]::run_compiler::{closure#1}::{closure#2}, core[5029ced7f280b950]::result::Result<core[5029ced7f280b950]::option::Option<rustc_interface[649c07bcaa826da7]::queries::Linker>, rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>>
  17:     0x7fb62ba79f78 - rustc_span[61aa4dc18b27dd6c]::with_source_map::<core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>, rustc_interface[649c07bcaa826da7]::interface::run_compiler<core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>, rustc_driver[c8d19d3afee4bdc9]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  18:     0x7fb62ba79a65 - <scoped_tls[5892410b08f734b5]::ScopedKey<rustc_span[61aa4dc18b27dd6c]::SessionGlobals>>::set::<rustc_interface[649c07bcaa826da7]::interface::run_compiler<core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>, rustc_driver[c8d19d3afee4bdc9]::run_compiler::{closure#1}>::{closure#0}, core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>>
  19:     0x7fb62ba79052 - std[ebc28cf04754cd8d]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[649c07bcaa826da7]::util::run_in_thread_pool_with_globals<rustc_interface[649c07bcaa826da7]::interface::run_compiler<core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>, rustc_driver[c8d19d3afee4bdc9]::run_compiler::{closure#1}>::{closure#0}, core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>>
  20:     0x7fb62c0ecfee - <<std[ebc28cf04754cd8d]::thread::Builder>::spawn_unchecked_<rustc_interface[649c07bcaa826da7]::util::run_in_thread_pool_with_globals<rustc_interface[649c07bcaa826da7]::interface::run_compiler<core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>, rustc_driver[c8d19d3afee4bdc9]::run_compiler::{closure#1}>::{closure#0}, core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[5029ced7f280b950]::result::Result<(), rustc_errors[4c9e772a36c84051]::ErrorGuaranteed>>::{closure#1} as core[5029ced7f280b950]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  21:     0x7fb62d5da623 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::heae35e1afc4b24eb
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/alloc/src/boxed.rs:2000:9
  22:     0x7fb62d5da623 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h82b51f76f931d41c
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/alloc/src/boxed.rs:2000:9
  23:     0x7fb62d5da623 - std::sys::unix::thread::Thread::new::thread_start::h66d484584973ef33
                               at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/sys/unix/thread.rs:108:17
  24:     0x7fb6293068fd - <unknown>
  25:     0x7fb629388a60 - <unknown>
  26:                0x0 - <unknown>

Activity

  1. added
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    C-bugCategory: This is a bug.
    requires-nightlyThis issue requires a nightly compiler in some way. When possible, use a F-* label instead.
    S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issue
    on Dec 12, 2022
  2. jruderman commented on Dec 12, 2022

    @jruderman
    Contributor

    Regression in rollup b12b836, perhaps from #104019. CC @compiler-errors

  3. added 5 commits that reference this issue on Dec 14, 2022
    fbe00f0
    d9e36a4
    601eedd
    6cb3c62
    5d24760
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way. When possible, use a F-* label instead.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions