[COMMITTED] gccrs: Add testcase for const-eval issue from rust-blog

Message ID 20230131132650.663517-1-arthur.cohen@embecosm.com
State Committed
Commit f92f8ee75bf0f4a653218a52698263b559c463a4
Headers
Series [COMMITTED] gccrs: Add testcase for const-eval issue from rust-blog |

Commit Message

Arthur Cohen Jan. 31, 2023, 1:26 p.m. UTC
  From: Philip Herron <philip.herron@embecosm.com>

see:
https://blog.rust-lang.org/2022/09/15/const-eval-safety-rule-revision.html

gcc/testsuite/ChangeLog:

	* rust/compile/rust-const-blog-issue.rs: New test.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/testsuite/rust/compile/rust-const-blog-issue.rs | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 gcc/testsuite/rust/compile/rust-const-blog-issue.rs
  

Patch

diff --git a/gcc/testsuite/rust/compile/rust-const-blog-issue.rs b/gcc/testsuite/rust/compile/rust-const-blog-issue.rs
new file mode 100644
index 00000000000..a5ea2ebacb9
--- /dev/null
+++ b/gcc/testsuite/rust/compile/rust-const-blog-issue.rs
@@ -0,0 +1,12 @@ 
+// { dg-excess-errors "accessing value of"  }
+mod mem {
+    extern "rust-intrinsic" {
+        #[rustc_const_stable(feature = "const_transmute", since = "1.46.0")]
+        fn transmute<T, U>(_: T) -> U;
+    }
+}
+
+pub static FOO: () = unsafe {
+    let illegal_ptr2int: usize = mem::transmute(&());
+    let _copy = illegal_ptr2int;
+};