Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

single-variant transparent structure with zero-sized field ICE #109334

Closed
chorman0773 opened this issue Mar 19, 2023 · 2 comments · Fixed by #109370
Closed

single-variant transparent structure with zero-sized field ICE #109334

chorman0773 opened this issue Mar 19, 2023 · 2 comments · Fixed by #109370
Labels
A-lints Area: Lints (warnings about flaws in source code) such as unused_mut. C-bug Category: This is a bug. E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. E-mentor Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@chorman0773
Copy link
Contributor

chorman0773 commented Mar 19, 2023

Code

I do not have a minimum reproduction yet. cargo build on this github repository with last night's nightly worked: https://github.com/LiliumOS/lilium-sys (LiliumOS/lilium-sys@cc45923).

Meta

rustc --version --verbose:

rustc 1.70.0-nightly (13afbdaa0 2023-03-17)
binary: rustc
commit-hash: 13afbdaa0655dda23d7129e59ac48f1ec88b2084
commit-date: 2023-03-17
host: x86_64-unknown-linux-gnu
release: 1.70.0-nightly
LLVM version: 15.0.7

Error output

Backtrace

thread 'rustc' panicked at 'single-variant transparent structure with zero-sized field', compiler/rustc_lint/src/builtin.rs:2798:34
stack backtrace:
   0:     0x7f6993d6739a - std::backtrace_rs::backtrace::libunwind::trace::h84d2711f38e4d049
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f6993d6739a - std::backtrace_rs::backtrace::trace_unsynchronized::h07f6ebc5344709db
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f6993d6739a - std::sys_common::backtrace::_print_fmt::h05a29271ab24b307
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7f6993d6739a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h2badcaa62266c6d2
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f6993dca9be - core::fmt::write::h029bd029dcf67de1
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/core/src/fmt/mod.rs:1254:17
   5:     0x7f6993d5a225 - std::io::Write::write_fmt::h80e1934b9bd451b8
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/io/mod.rs:1684:15
   6:     0x7f6993d67165 - std::sys_common::backtrace::_print::hd15e10f9274c89b0
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7f6993d67165 - std::sys_common::backtrace::print::h170965e4e66b5ee4
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7f6993d69edf - std::panicking::default_hook::{{closure}}::h0164004bb09e0366
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/panicking.rs:271:22
   9:     0x7f6993d69c1b - std::panicking::default_hook::h5e2940911ec5582f
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/panicking.rs:290:9
  10:     0x7f6996ff2415 - rustc_driver_impl[bad2ed848d64dbdc]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7f6993d6a71d - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0f3cc38fa49d6ba4
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/alloc/src/boxed.rs:2002:9
  12:     0x7f6993d6a71d - std::panicking::rust_panic_with_hook::h591d1df500c4db69
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/panicking.rs:696:13
  13:     0x7f6993d6a499 - std::panicking::begin_panic_handler::{{closure}}::h88c33edc8ad15aaa
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/panicking.rs:583:13
  14:     0x7f6993d67806 - std::sys_common::backtrace::__rust_end_short_backtrace::h8c0d0dd7ca5cd1b1
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/sys_common/backtrace.rs:150:18
  15:     0x7f6993d6a1a2 - rust_begin_unwind
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/panicking.rs:579:5
  16:     0x7f6993dc6d13 - core::panicking::panic_fmt::h4294102993ea4dab
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/core/src/panicking.rs:64:14
  17:     0x7f6993dc6e81 - core::panicking::panic_display::haeff71172f575d8d
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/core/src/panicking.rs:147:5
  18:     0x7f6993dc6e2b - core::panicking::panic_str::hb7aef33d628a91cf
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/core/src/panicking.rs:131:5
  19:     0x7f6993dc6a96 - core::option::expect_failed::h40fd8c6d5d394aa8
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/core/src/option.rs:2091:5
  20:     0x7f69967cc459 - <rustc_lint[962adbdcb387127b]::builtin::ClashingExternDeclarations>::structurally_same_type::structurally_same_type_impl
  21:     0x7f69967cc63f - <rustc_lint[962adbdcb387127b]::builtin::ClashingExternDeclarations>::structurally_same_type::structurally_same_type_impl
  22:     0x7f69967cc5f0 - <rustc_lint[962adbdcb387127b]::builtin::ClashingExternDeclarations>::structurally_same_type::structurally_same_type_impl
  23:     0x7f6995bfa0b7 - <rustc_lint[962adbdcb387127b]::builtin::ClashingExternDeclarations as rustc_lint[962adbdcb387127b]::passes::LateLintPass>::check_foreign_item
  24:     0x7f6995bf83f0 - <rustc_lint[962adbdcb387127b]::late::LateContextAndPass<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass> as rustc_hir[f188a593009d666f]::intravisit::Visitor>::visit_nested_foreign_item
  25:     0x7f6995bf3d3c - rustc_hir[f188a593009d666f]::intravisit::walk_item::<rustc_lint[962adbdcb387127b]::late::LateContextAndPass<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass>>
  26:     0x7f6995bf537a - <rustc_lint[962adbdcb387127b]::late::LateContextAndPass<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass> as rustc_hir[f188a593009d666f]::intravisit::Visitor>::visit_nested_item
  27:     0x7f6995bf3f8d - rustc_hir[f188a593009d666f]::intravisit::walk_item::<rustc_lint[962adbdcb387127b]::late::LateContextAndPass<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass>>
  28:     0x7f6995bf537a - <rustc_lint[962adbdcb387127b]::late::LateContextAndPass<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass> as rustc_hir[f188a593009d666f]::intravisit::Visitor>::visit_nested_item
  29:     0x7f6995bf3f8d - rustc_hir[f188a593009d666f]::intravisit::walk_item::<rustc_lint[962adbdcb387127b]::late::LateContextAndPass<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass>>
  30:     0x7f6995bf537a - <rustc_lint[962adbdcb387127b]::late::LateContextAndPass<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass> as rustc_hir[f188a593009d666f]::intravisit::Visitor>::visit_nested_item
  31:     0x7f69966deaeb - rustc_lint[962adbdcb387127b]::late::late_lint_crate::<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass>
  32:     0x7f69966de322 - <rustc_session[8656a7a78cf578e4]::session::Session>::time::<(), rustc_lint[962adbdcb387127b]::late::check_crate<rustc_lint[962adbdcb387127b]::BuiltinCombinedLateLintPass, rustc_interface[dde792dfc5bb5edd]::passes::analysis::{closure#6}::{closure#1}::{closure#2}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>
  33:     0x7f69966de182 - <rustc_session[8656a7a78cf578e4]::session::Session>::time::<(), rustc_interface[dde792dfc5bb5edd]::passes::analysis::{closure#6}::{closure#1}::{closure#2}::{closure#0}>
  34:     0x7f699660f5a8 - <core[9847d4a2e8a02df2]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[dde792dfc5bb5edd]::passes::analysis::{closure#6}::{closure#1}> as core[9847d4a2e8a02df2]::ops::function::FnOnce<()>>::call_once
  35:     0x7f699534847b - <rustc_session[8656a7a78cf578e4]::session::Session>::time::<(), rustc_interface[dde792dfc5bb5edd]::passes::analysis::{closure#6}>
  36:     0x7f699534680a - rustc_interface[dde792dfc5bb5edd]::passes::analysis
  37:     0x7f6996811d0d - rustc_query_system[3b264ab6e948b942]::query::plumbing::try_execute_query::<rustc_query_impl[1cc93b35ef872c79]::queries::analysis, rustc_query_impl[1cc93b35ef872c79]::plumbing::QueryCtxt>
  38:     0x7f69968117e0 - <rustc_query_impl[1cc93b35ef872c79]::Queries as rustc_middle[eaf6378de1cdbfa8]::ty::query::QueryEngine>::analysis
  39:     0x7f699666e109 - <rustc_middle[eaf6378de1cdbfa8]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[bad2ed848d64dbdc]::run_compiler::{closure#1}::{closure#2}::{closure#4}, core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>>
  40:     0x7f69961f852d - <rustc_interface[dde792dfc5bb5edd]::interface::Compiler>::enter::<rustc_driver_impl[bad2ed848d64dbdc]::run_compiler::{closure#1}::{closure#2}, core[9847d4a2e8a02df2]::result::Result<core[9847d4a2e8a02df2]::option::Option<rustc_interface[dde792dfc5bb5edd]::queries::Linker>, rustc_span[4d522547309d7b79]::ErrorGuaranteed>>
  41:     0x7f69961f6630 - rustc_span[4d522547309d7b79]::with_source_map::<core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>, rustc_interface[dde792dfc5bb5edd]::interface::run_compiler<core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>, rustc_driver_impl[bad2ed848d64dbdc]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  42:     0x7f69961f5bd9 - std[b4247acdb72724ff]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[dde792dfc5bb5edd]::util::run_in_thread_pool_with_globals<rustc_interface[dde792dfc5bb5edd]::interface::run_compiler<core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>, rustc_driver_impl[bad2ed848d64dbdc]::run_compiler::{closure#1}>::{closure#0}, core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>>
  43:     0x7f69968e6afa - <<std[b4247acdb72724ff]::thread::Builder>::spawn_unchecked_<rustc_interface[dde792dfc5bb5edd]::util::run_in_thread_pool_with_globals<rustc_interface[dde792dfc5bb5edd]::interface::run_compiler<core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>, rustc_driver_impl[bad2ed848d64dbdc]::run_compiler::{closure#1}>::{closure#0}, core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[9847d4a2e8a02df2]::result::Result<(), rustc_span[4d522547309d7b79]::ErrorGuaranteed>>::{closure#1} as core[9847d4a2e8a02df2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  44:     0x7f6993d745f3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h51bca2043facf7d3
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/alloc/src/boxed.rs:1988:9
  45:     0x7f6993d745f3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h365da710d54db7ab
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/alloc/src/boxed.rs:1988:9
  46:     0x7f6993d745f3 - std::sys::unix::thread::Thread::new::thread_start::hb322f3a535acf0fe
                               at /rustc/13afbdaa0655dda23d7129e59ac48f1ec88b2084/library/std/src/sys/unix/thread.rs:108:17
  47:     0x7f6993a90402 - start_thread
                               at ./nptl/./nptl/pthread_create.c:442:8
  48:     0x7f6993b1f590 - __GI___clone3
                               at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
  49:                0x0 - <unknown>

@chorman0773 chorman0773 added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 19, 2023
@Noratrieb
Copy link
Member

Noratrieb commented Mar 19, 2023

pub mod with_trans {
    #[repr(transparent)]
    pub struct Handle(());

    extern "C" {
        /// Advances the enumeration list
        pub fn foreign(a: Handle);
    }
}

pub mod without_trans {
    pub struct Handle(());

    extern "C" {
        pub fn foreign(a: Handle);
    }
}

fn main() {}

@Noratrieb
Copy link
Member

@rustbot label +E-easy +E-mentor
The crash occurs in the ClashingExternDeclarations lint. If you have further questions or need help, feel free to ask here or reach out to me on zulip.

@rustbot rustbot added E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. E-mentor Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion. labels Mar 19, 2023
@Noratrieb Noratrieb added the A-lints Area: Lints (warnings about flaws in source code) such as unused_mut. label Mar 19, 2023
@bors bors closed this as completed in eb1f8dc Mar 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-lints Area: Lints (warnings about flaws in source code) such as unused_mut. C-bug Category: This is a bug. E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. E-mentor Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants