Avoid using substitute's input cache after the method call. (#6328)
authorAbdalrhman Mohamed <32971963+abdoo8080@users.noreply.github.com>
Tue, 13 Apr 2021 12:45:43 +0000 (05:45 -0700)
committerGitHub <noreply@github.com>
Tue, 13 Apr 2021 12:45:43 +0000 (12:45 +0000)
commitee7442e1c79e94be8e3e23777679980b8c505d1c
tree403225dbe01d4c2a5612d037ebb73a50cb841590
parentec0daa929c59dbed12ea119f3a5503e37f13d887
Avoid using substitute's input cache after the method call. (#6328)

As it traverses a node, Node::substitute populates its input cache with TNodes that are not preserved by the SygusReconstruct module and maybe destroyed after the method call. This PR fixes a bug where those unsafe TNodes are referenced throughout the module by passing the method a temporary copy of the cache instead.
src/theory/quantifiers/sygus/sygus_reconstruct.cpp