From 3396da354e52f17b8dfd2bf13b06e30b2ac2176b Mon Sep 17 00:00:00 2001 From: Nobel Date: Mon, 23 Dec 2024 04:04:44 +0545 Subject: gccrs: add ptr to int and int to ptr type cast rules Added rules to allow type casting pointer as integer types (u*,i*) and integer types to be casted as pointer. gcc/rust/ChangeLog: * typecheck/rust-casts.cc (TypeCastRules::cast_rules): Add rule. gcc/testsuite/ChangeLog: * rust/compile/ptr_int_cast.rs: New test. Signed-off-by: Nobel Singh --- gcc/testsuite/rust/compile/ptr_int_cast.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 gcc/testsuite/rust/compile/ptr_int_cast.rs (limited to 'gcc/testsuite/rust/compile') diff --git a/gcc/testsuite/rust/compile/ptr_int_cast.rs b/gcc/testsuite/rust/compile/ptr_int_cast.rs new file mode 100644 index 0000000..3a2a5d5 --- /dev/null +++ b/gcc/testsuite/rust/compile/ptr_int_cast.rs @@ -0,0 +1,18 @@ +fn main(){ + let foo = 1337; + let bar_ptr = &foo as *const i32; + + let bar_ptr_usize = bar_ptr as usize; + let bar_ptr_isize = bar_ptr as isize; + let bar_ptr_u64 = bar_ptr as u64; + let bar_ptr_i64 = bar_ptr as i64; + let bar_ptr_i8 = bar_ptr as i8; + let bar_ptr_u8 = bar_ptr as u8; + + let _ = bar_ptr_usize as *const i32; + let _ = bar_ptr_isize as *const i32; + let _ = bar_ptr_u64 as *const i32; + let _ = bar_ptr_i64 as *const i32; + let _ = bar_ptr_i8 as *const i32; + let _ = bar_ptr_u8 as *const i32; +} -- cgit v1.1