Support covergroup/function/task (ref/virtual/array) interface arguments (#8180)

This commit is contained in:
Marco Bartoli
2026-08-22 15:46:07 -04:00
committed by GitHub
parent 063b938f41
commit 0820506d74
39 changed files with 1630 additions and 136 deletions
+6
View File
@@ -185,6 +185,12 @@ void EmitCBaseVisitorConst::emitVarDecl(const AstVar* nodep, bool asRef) {
const AstBasicDType* const basicp = nodep->basicp();
const bool refNeedParens = VN_IS(nodep->dtypeSkipRefp(), UnpackArrayDType);
if (nodep->mtaskCacheLineAlign() && !asRef) putns(nodep, "alignas(VL_CACHE_LINE_BYTES) ");
if (nodep->covergroupRefMember()) {
UASSERT_OBJ(!asRef, nodep, "Covergroup reference member emitted as C++ reference");
putns(nodep, nodep->dtypep()->cType("", false, false));
puts(" const* " + nodep->nameProtect() + " = nullptr;\n");
return;
}
const auto emitDeclArrayBrackets = [this](const AstVar* nodep) -> void {
// This isn't very robust and may need cleanup for other data types