diff --git a/src/V3Ast.cpp b/src/V3Ast.cpp index dd3aed046..9e0c95824 100644 --- a/src/V3Ast.cpp +++ b/src/V3Ast.cpp @@ -951,7 +951,7 @@ void AstNode::deleteTreeIter() { if (nodep->m_op3p) nodep->m_op3p->deleteTreeIter(); if (nodep->m_op4p) nodep->m_op4p->deleteTreeIter(); nodep->m_nextp = nullptr; - + bool skipDelete = false; if (VN_IS(nodep, Var) && nodep->m_backp) { // If we are deleting a Var that is still linked to a parent (or list), @@ -962,12 +962,9 @@ void AstNode::deleteTreeIter() { // (via AstVarScope) and delete it properly (at which point backp will be null). skipDelete = true; } - nodep->m_backp = nullptr; - if (!skipDelete) { - nodep->deleteNode(); - } + if (!skipDelete) { nodep->deleteNode(); } } }