aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorPhilip Herron <herron.philip@googlemail.com>2023-01-27 18:31:11 +0000
committerPhilip Herron <herron.philip@googlemail.com>2023-02-05 00:10:48 +0000
commitfc6c5f7dc2062d222a99157fb514d71ad87b1b45 (patch)
tree624bc26e7a42c872e574e91cc1807f31cde5185b /gcc/rust
parent50856ddba4689710dd53865e96cc7da9885b7b51 (diff)
downloadgcc-fc6c5f7dc2062d222a99157fb514d71ad87b1b45.zip
gcc-fc6c5f7dc2062d222a99157fb514d71ad87b1b45.tar.gz
gcc-fc6c5f7dc2062d222a99157fb514d71ad87b1b45.tar.bz2
gccrs: Clear the substitution callbacks when copying ArgumentMappings
When we set the callback on substitutions this is not safe to be copied around since we store the used argument mappings and can reuse them in different contexts. This clears the callback on copy's to make it safer. Signed-off-by: Philip Herron <herron.philip@googlemail.com> gcc/rust/ChangeLog: * typecheck/rust-tyty-subst.cc: update copy constructors
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/typecheck/rust-tyty-subst.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/rust/typecheck/rust-tyty-subst.cc b/gcc/rust/typecheck/rust-tyty-subst.cc
index a5d7387..0e181ef 100644
--- a/gcc/rust/typecheck/rust-tyty-subst.cc
+++ b/gcc/rust/typecheck/rust-tyty-subst.cc
@@ -241,7 +241,7 @@ SubstitutionArgumentMappings::SubstitutionArgumentMappings (
SubstitutionArgumentMappings::SubstitutionArgumentMappings (
const SubstitutionArgumentMappings &other)
: mappings (other.mappings), binding_args (other.binding_args),
- locus (other.locus), param_subst_cb (other.param_subst_cb),
+ locus (other.locus), param_subst_cb (nullptr),
trait_item_flag (other.trait_item_flag)
{}
@@ -252,7 +252,7 @@ SubstitutionArgumentMappings::operator= (
mappings = other.mappings;
binding_args = other.binding_args;
locus = other.locus;
- param_subst_cb = other.param_subst_cb;
+ param_subst_cb = nullptr;
trait_item_flag = other.trait_item_flag;
return *this;