mirror of
https://github.com/Z3Prover/z3
synced 2026-05-31 06:07:46 +00:00
Fix dangling pointer in fresh variable name construction in generate_extensions()
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
0bdec633d7
commit
927b03615c
1 changed files with 4 additions and 2 deletions
|
|
@ -552,7 +552,8 @@ namespace seq {
|
||||||
// Const Nielsen modifier: lhs starts with char, rhs starts with var
|
// Const Nielsen modifier: lhs starts with char, rhs starts with var
|
||||||
// -> substitute rhs_var = char . fresh_var
|
// -> substitute rhs_var = char . fresh_var
|
||||||
if (lhead->is_char() && rhead->is_var()) {
|
if (lhead->is_char() && rhead->is_var()) {
|
||||||
symbol fresh_name(("v!" + std::to_string(node->id())).c_str());
|
std::string fresh_str = "v!" + std::to_string(node->id());
|
||||||
|
symbol fresh_name(fresh_str.c_str());
|
||||||
euf::snode* fresh = m_sg.mk_var(fresh_name);
|
euf::snode* fresh = m_sg.mk_var(fresh_name);
|
||||||
euf::snode* replacement = m_sg.mk_concat(lhead, fresh);
|
euf::snode* replacement = m_sg.mk_concat(lhead, fresh);
|
||||||
|
|
||||||
|
|
@ -565,7 +566,8 @@ namespace seq {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rhead->is_char() && lhead->is_var()) {
|
if (rhead->is_char() && lhead->is_var()) {
|
||||||
symbol fresh_name(("v!" + std::to_string(node->id())).c_str());
|
std::string fresh_str = "v!" + std::to_string(node->id());
|
||||||
|
symbol fresh_name(fresh_str.c_str());
|
||||||
euf::snode* fresh = m_sg.mk_var(fresh_name);
|
euf::snode* fresh = m_sg.mk_var(fresh_name);
|
||||||
euf::snode* replacement = m_sg.mk_concat(rhead, fresh);
|
euf::snode* replacement = m_sg.mk_concat(rhead, fresh);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue