aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/rust/compile/issue-1173.rs7
-rw-r--r--gcc/testsuite/rust/compile/torture/intrinsics-1.rs16
-rw-r--r--gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs2
-rw-r--r--gcc/testsuite/rust/compile/torture/transmute1.rs2
4 files changed, 18 insertions, 9 deletions
diff --git a/gcc/testsuite/rust/compile/issue-1173.rs b/gcc/testsuite/rust/compile/issue-1173.rs
index b08d720..5c2a917 100644
--- a/gcc/testsuite/rust/compile/issue-1173.rs
+++ b/gcc/testsuite/rust/compile/issue-1173.rs
@@ -1,14 +1,17 @@
// { dg-additional-options "-w" }
+
+#![feature(intrinsics)]
+
mod mem {
extern "rust-intrinsic" {
- fn transmute<U, V>(_: U) -> V;
+ pub fn transmute<U, V>(_: U) -> V;
}
}
pub trait Hasher {
fn write(&mut self, bytes: &[u8]);
fn write_u16(&mut self, i: u16) {
- self.write(&mem::transmute::<_, [u8; 2]>(i))
+ self.write(unsafe { &mem::transmute::<_, [u8; 2]>(i) })
}
}
diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-1.rs b/gcc/testsuite/rust/compile/torture/intrinsics-1.rs
index 3c604df..6704c02 100644
--- a/gcc/testsuite/rust/compile/torture/intrinsics-1.rs
+++ b/gcc/testsuite/rust/compile/torture/intrinsics-1.rs
@@ -1,16 +1,22 @@
// { dg-additional-options -fdump-tree-original }
+#![feature(intrinsics)]
+
extern "rust-intrinsic" {
pub fn sqrtf32(x: f32) -> f32;
pub fn sinf32(x: f32) -> f32;
}
fn main() {
- let mut f32;
+ unsafe fn foo() {
+ let mut f32;
+
+ f32 = sqrtf32(5f32);
+ // { dg-final { scan-tree-dump-times {(?n)f32 = __builtin_sqrtf \(5\.0e\+0\);$} 1 original } }
- f32 = sqrtf32(5f32);
- // { dg-final { scan-tree-dump-times {(?n)f32 = __builtin_sqrtf \(5\.0e\+0\);$} 1 original } }
+ f32 = sinf32(39f32);
+ // { dg-final { scan-tree-dump-times {(?n)f32 = __builtin_sinf \(3\.9e\+1\);$} 1 original } }
+ }
- f32 = sinf32(39f32);
- // { dg-final { scan-tree-dump-times {(?n)f32 = __builtin_sinf \(3\.9e\+1\);$} 1 original } }
+ unsafe { foo() };
}
diff --git a/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs b/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
index 1aef4d8..461a35d 100644
--- a/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
+++ b/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
@@ -7,5 +7,5 @@ mod mem {
fn main() {
let a = 123;
- let _b: [u32; mem::size_of::<i32>()] = mem::transmute(a);
+ let _b: [u32; mem::size_of::<i32>()] = unsafe { mem::transmute(a) };
}
diff --git a/gcc/testsuite/rust/compile/torture/transmute1.rs b/gcc/testsuite/rust/compile/torture/transmute1.rs
index 333fffe..af9a55d 100644
--- a/gcc/testsuite/rust/compile/torture/transmute1.rs
+++ b/gcc/testsuite/rust/compile/torture/transmute1.rs
@@ -7,5 +7,5 @@ mod mem {
fn main() {
let a = 123;
- let _b: [u8; mem::size_of::<i32>()] = mem::transmute(a);
+ let _b: [u8; mem::size_of::<i32>()] = unsafe { mem::transmute(a) };
}