File: const_refs_to_static-ice-121413.rs

package info (click to toggle)
rustc 1.88.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 934,128 kB
  • sloc: xml: 158,127; python: 36,062; javascript: 19,855; sh: 19,700; cpp: 18,947; ansic: 12,993; asm: 4,792; makefile: 690; lisp: 29; perl: 29; ruby: 19; sql: 11
file content (17 lines) | stat: -rw-r--r-- 1,008 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// ICE: ImmTy { imm: Scalar(alloc1), ty: *const dyn Sync } input to a fat-to-thin cast (*const dyn Sync -> *const usize
// or with -Zextra-const-ub-checks: expected wide pointer extra data (e.g. slice length or trait object vtable)
// issue: rust-lang/rust#121413
//@ compile-flags: -Zextra-const-ub-checks
// ignore-tidy-linelength
const REF_INTERIOR_MUT: &usize = {
    //~^ HELP consider importing this struct
    static FOO: Sync = AtomicUsize::new(0);
    //~^ ERROR failed to resolve: use of undeclared type `AtomicUsize`
    //~| WARN trait objects without an explicit `dyn` are deprecated
    //~| ERROR the size for values of type `(dyn Sync + 'static)` cannot be known at compilation time
    //~| WARN this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
    //~| HELP if this is a dyn-compatible trait, use `dyn`
    //~| HELP the trait `Sized` is not implemented for `(dyn Sync + 'static)`
    unsafe { &*(&FOO as *const _ as *const usize) }
};
pub fn main() {}