diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2021-11-16 15:59:41 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-16 15:59:41 +0900 |
| commit | 6d9c3a1b979273a541ccf1f1c718c8ea733833ed (patch) | |
| tree | aff4fe948e4e1ff72060087be19e015b46710f18 /src | |
| parent | d44cec3453ce1645c1b17b54b8fbec989d4ab0d3 (diff) | |
| parent | 9ec88626eac5e3e7c5fd719135545f1ac31fab8b (diff) | |
| download | rust-6d9c3a1b979273a541ccf1f1c718c8ea733833ed.tar.gz rust-6d9c3a1b979273a541ccf1f1c718c8ea733833ed.zip | |
Rollup merge of #90910 - RalfJung:const-discriminant-empty-enum, r=petrochenkov
fix getting the discriminant of a zero-variant enum Fixes https://github.com/rust-lang/rust/issues/89765
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/consts/const_discriminant.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/test/ui/consts/const_discriminant.rs b/src/test/ui/consts/const_discriminant.rs index a47f6af0296..f623c5101f4 100644 --- a/src/test/ui/consts/const_discriminant.rs +++ b/src/test/ui/consts/const_discriminant.rs @@ -25,6 +25,13 @@ enum SingleVariant { const TEST_V: Discriminant<SingleVariant> = discriminant(&SingleVariant::V); +pub const TEST_VOID: () = { + // This is UB, but CTFE does not check validity so it does not detect this. + // This is a regression test for https://github.com/rust-lang/rust/issues/89765. + unsafe { std::mem::discriminant(&*(&() as *const () as *const Void)); }; +}; + + fn main() { assert_eq!(TEST_A, TEST_A_OTHER); assert_eq!(TEST_A, discriminant(black_box(&Test::A(17)))); |
