aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2022-09-12 15:53:01 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2023-01-31 14:16:51 +0100
commit288b6298a6ae9356122362cd604e3582d8decd26 (patch)
treefc408cf38f4e76c57c2d69b986862b0e0d2ac3d4 /gcc
parent0d5adf09356641070079eadef09717ece164b6b9 (diff)
downloadgcc-288b6298a6ae9356122362cd604e3582d8decd26.zip
gcc-288b6298a6ae9356122362cd604e3582d8decd26.tar.gz
gcc-288b6298a6ae9356122362cd604e3582d8decd26.tar.bz2
gccrs: const generics: Make sure const generic types are visited properly
...in all contexts. gcc/testsuite/ChangeLog: * rust/compile/const_generics_7.rs: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/rust/compile/const_generics_7.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/compile/const_generics_7.rs b/gcc/testsuite/rust/compile/const_generics_7.rs
new file mode 100644
index 0000000..2c128db
--- /dev/null
+++ b/gcc/testsuite/rust/compile/const_generics_7.rs
@@ -0,0 +1,17 @@
+struct S<const N: usize>;
+
+pub fn foo<const N: FooBar>() {} // { dg-error "failed to resolve" }
+type Foo<const N: FooBar> = S<N>; // { dg-error "failed to resolve" }
+struct Foo2<const N: FooBar>; // { dg-error "failed to resolve" }
+enum Foo3<const N: FooBar> { // { dg-error "failed to resolve" }
+ Foo,
+ Bar,
+}
+union Foo4<const N: FooBar> { // { dg-error "failed to resolve" }
+ a: usize,
+ b: i32,
+}
+trait Fooable<const N: FooBar> {} // { dg-error "failed to resolve" }
+
+trait Traitable {}
+impl<const N: FooBar> Traitable for Foo2<N> {} // { dg-error "failed to resolve" }