diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/typecheck/rust-tyty-subst.h | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/issue-3605.rs | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/rust/typecheck/rust-tyty-subst.h b/gcc/rust/typecheck/rust-tyty-subst.h index 86bc08b..65d5d5a 100644 --- a/gcc/rust/typecheck/rust-tyty-subst.h +++ b/gcc/rust/typecheck/rust-tyty-subst.h @@ -125,7 +125,7 @@ public: std::vector<Region> subst) { RegionParamList list (num_regions); - for (size_t i = 0; i < subst.size (); i++) + for (size_t i = 0; i < MIN (num_regions, subst.size ()); i++) list.regions.at (i) = subst.at (i); for (size_t i = subst.size (); i < num_regions; i++) { diff --git a/gcc/testsuite/rust/compile/issue-3605.rs b/gcc/testsuite/rust/compile/issue-3605.rs new file mode 100644 index 0000000..05e6e48 --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-3605.rs @@ -0,0 +1,5 @@ +enum Foo<'a> {} + +enum Bar<'a> { + in_band_def_explicit_impl(Foo<'a>), +} |