Fix class extends to use virtual destruction

This commit is contained in:
Wilson Snyder
2020-08-23 20:00:39 -04:00
parent 20206b1e2e
commit 3d073c9534
4 changed files with 13 additions and 2 deletions
+3 -1
View File
@@ -170,10 +170,12 @@ void V3CCtors::cctorsAll() {
}
}
}
if (VN_IS(modp, Class)) {
if (AstClass* classp = VN_CAST(modp, Class)) {
AstCFunc* funcp = new AstCFunc(modp->fileline(), "~", nullptr, "");
funcp->isDestructor(true);
funcp->isStatic(false);
// If can be referred to by base pointer, need virtual delete
funcp->isVirtual(classp->isExtended());
funcp->slow(false);
modp->addStmtp(funcp);
}