aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-11-30 10:43:36 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-30 12:36:48 +0100
commita3f4152a312c873b0d81c0715946b15a04193700 (patch)
treece4237853a773f27ed9cc01e987022f0afc05fdd /gcc
parent4cd0315aa91c70f7129833671cedb12a7b45e199 (diff)
downloadgcc-a3f4152a312c873b0d81c0715946b15a04193700.zip
gcc-a3f4152a312c873b0d81c0715946b15a04193700.tar.gz
gcc-a3f4152a312c873b0d81c0715946b15a04193700.tar.bz2
gccrs: Add multiple regression test in name resolution
Local variables and functions or global variables have different resolution when binded to a variable. This was not covered before, even though it was handled by the new name resolution. This commit highlight this behavior from the new name resolution mechanism. gcc/testsuite/ChangeLog: * rust/compile/name_resolution11.rs: New test. * rust/compile/name_resolution12.rs: New test. * rust/compile/name_resolution13.rs: New test. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/rust/compile/name_resolution11.rs7
-rw-r--r--gcc/testsuite/rust/compile/name_resolution12.rs10
-rw-r--r--gcc/testsuite/rust/compile/name_resolution13.rs9
3 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/compile/name_resolution11.rs b/gcc/testsuite/rust/compile/name_resolution11.rs
new file mode 100644
index 0000000..a464d2a
--- /dev/null
+++ b/gcc/testsuite/rust/compile/name_resolution11.rs
@@ -0,0 +1,7 @@
+// { dg-additional-options "-frust-name-resolution-2.0 -frust-compile-until=lowering" }
+fn foo() {
+ let b = 10;
+ fn bar() {
+ let a = foo;
+ }
+}
diff --git a/gcc/testsuite/rust/compile/name_resolution12.rs b/gcc/testsuite/rust/compile/name_resolution12.rs
new file mode 100644
index 0000000..9cce31c
--- /dev/null
+++ b/gcc/testsuite/rust/compile/name_resolution12.rs
@@ -0,0 +1,10 @@
+// { dg-additional-options "-frust-name-resolution-2.0 -frust-compile-until=lowering" }
+
+const TOTO: i32 = 10;
+
+fn foo() {
+ let b = 10;
+ fn bar() {
+ let e = TOTO;
+ }
+}
diff --git a/gcc/testsuite/rust/compile/name_resolution13.rs b/gcc/testsuite/rust/compile/name_resolution13.rs
new file mode 100644
index 0000000..52a152b
--- /dev/null
+++ b/gcc/testsuite/rust/compile/name_resolution13.rs
@@ -0,0 +1,9 @@
+// { dg-additional-options "-frust-name-resolution-2.0 -frust-compile-until=lowering" }
+
+fn foo() {
+ let b = 10;
+ fn bar() {
+ let c = b;
+ // { dg-error "cannot find value .b. in this scope .E0425." "" { target *-*-* } .-1 }
+ }
+}