diff options
author | Philip Herron <herron.philip@googlemail.com> | 2023-01-27 18:31:11 +0000 |
---|---|---|
committer | Philip Herron <herron.philip@googlemail.com> | 2023-02-05 00:10:48 +0000 |
commit | fc6c5f7dc2062d222a99157fb514d71ad87b1b45 (patch) | |
tree | 624bc26e7a42c872e574e91cc1807f31cde5185b /gcc/rust | |
parent | 50856ddba4689710dd53865e96cc7da9885b7b51 (diff) | |
download | gcc-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.cc | 4 |
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; |