Fix misc memory leaks

This commit is contained in:
Wilson Snyder 2022-12-29 13:59:24 -05:00
parent be42dc906c
commit fde380868a
3 changed files with 6 additions and 1 deletions

View File

@ -368,6 +368,7 @@ private:
inp = new AstVarRef{nodep->fileline(), invarp, VAccess::READ};
}
nodep->replaceWith(inp);
VL_DO_DANGLING(pushDeletep(nodep), nodep);
}
//========== Move $sampled down to read-only variables

View File

@ -138,13 +138,16 @@ AstNodeDType* V3ParseGrammar::createArray(AstNodeDType* basep, AstNodeRange* nra
rangep};
} else if (VN_IS(nrangep, UnsizedRange)) {
arrayp = new AstUnsizedArrayDType{nrangep->fileline(), VFlagChildDType{}, arrayp};
VL_DO_DANGLING(nrangep->deleteTree(), nrangep);
} else if (VN_IS(nrangep, BracketRange)) {
const AstBracketRange* const arangep = VN_AS(nrangep, BracketRange);
AstNode* const keyp = arangep->elementsp()->unlinkFrBack();
arrayp = new AstBracketArrayDType{nrangep->fileline(), VFlagChildDType{}, arrayp,
keyp};
VL_DO_DANGLING(nrangep->deleteTree(), nrangep);
} else if (VN_IS(nrangep, WildcardRange)) {
arrayp = new AstWildcardArrayDType{nrangep->fileline(), VFlagChildDType{}, arrayp};
VL_DO_DANGLING(nrangep->deleteTree(), nrangep);
} else {
UASSERT_OBJ(0, nrangep, "Expected range or unsized range");
}

View File

@ -2105,7 +2105,8 @@ struct_union_member<memberDTypep>: // ==IEEE: struct_union_member
// // UNSUP random_qualifer not propagagted until have randomize support
random_qualifierE data_type_or_void
/*mid*/ { GRAMMARP->m_memDTypep = $2; } // As a list follows, need to attach this dtype to each member.
/*cont*/ list_of_member_decl_assignments ';' { $$ = $4; GRAMMARP->m_memDTypep = nullptr; }
/*cont*/ list_of_member_decl_assignments ';'
{ $$ = $4; DEL(GRAMMARP->m_memDTypep); GRAMMARP->m_memDTypep = nullptr; }
| vlTag { $$ = nullptr; }
;