aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-01-06 14:53:35 +0000
committerPhilip Herron <herron.philip@googlemail.com>2021-01-08 10:05:40 +0000
commit290fc4f416c94a86aa5e3d22b785890a12686972 (patch)
tree192c18da12f6cfdf507e6f444fffd0ff26e8e5d9 /gcc
parentaf04ea2222b6407fb3e83759ae332d600495380c (diff)
downloadgcc-290fc4f416c94a86aa5e3d22b785890a12686972.zip
gcc-290fc4f416c94a86aa5e3d22b785890a12686972.tar.gz
gcc-290fc4f416c94a86aa5e3d22b785890a12686972.tar.bz2
Add test to cover handling hex, binary and octal number literals.
This also ensure the type suffix is respected against the number.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/backend/rust-compile-tyty.h6
-rw-r--r--gcc/testsuite/rust.test/compilable/literals1.rs9
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/rust/backend/rust-compile-tyty.h b/gcc/rust/backend/rust-compile-tyty.h
index 528f90e..2d4e1f0 100644
--- a/gcc/rust/backend/rust-compile-tyty.h
+++ b/gcc/rust/backend/rust-compile-tyty.h
@@ -132,19 +132,19 @@ public:
switch (type.get_kind ())
{
case TyTy::UintType::U8:
- translated = backend->named_type ("i8", backend->integer_type (true, 8),
+ translated = backend->named_type ("u8", backend->integer_type (true, 8),
Linemap::predeclared_location ());
return;
case TyTy::UintType::U16:
translated
- = backend->named_type ("i16", backend->integer_type (true, 16),
+ = backend->named_type ("u16", backend->integer_type (true, 16),
Linemap::predeclared_location ());
return;
case TyTy::UintType::U32:
translated
- = backend->named_type ("i32", backend->integer_type (true, 32),
+ = backend->named_type ("u32", backend->integer_type (true, 32),
Linemap::predeclared_location ());
return;
diff --git a/gcc/testsuite/rust.test/compilable/literals1.rs b/gcc/testsuite/rust.test/compilable/literals1.rs
new file mode 100644
index 0000000..cd48e83
--- /dev/null
+++ b/gcc/testsuite/rust.test/compilable/literals1.rs
@@ -0,0 +1,9 @@
+fn main() {
+ let hex: i32 = 0xFF;
+ let binary: i32 = 0b11110000;
+ let oct: i32 = 0o70;
+
+ let hex_u8: u8 = 0xFF_u8;
+ let bin_u16: u16 = 0b1111000011110000_u16;
+ let oct: u32 = 0o70_u32;
+}