aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs
blob: c1bae35deb2e36d4db2f9b7daeed6ac2e03a15a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#![feature(intrinsics)]

#[lang = "sized"]
pub trait Sized {}

enum BookFormat {
    Paperback,
    Hardback,
    Ebook,
}

mod core {
    mod intrinsics {
        extern "rust-intrinsic" {
            #[rustc_const_unstable(feature = "variant_count", issue = "73662")]
            pub fn variant_count<T>() -> usize;
        }
    }
}

pub fn main() -> i32 {
    let count = core::intrinsics::variant_count::<BookFormat>();

    (count as i32) - 3
}