From 53151d7c5ffe72ad583c2e8674ef228dc56f3950 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Tue, 11 Mar 2025 17:53:35 -0400 Subject: [PATCH] Fix emitting `this` (#5849) --- src/V3EmitV.cpp | 1 + test_regress/t/t_debug_emitv.out | 3 +++ test_regress/t/t_debug_emitv.v | 1 + 3 files changed, 5 insertions(+) diff --git a/src/V3EmitV.cpp b/src/V3EmitV.cpp index a9c75d9f5..b8176858d 100644 --- a/src/V3EmitV.cpp +++ b/src/V3EmitV.cpp @@ -634,6 +634,7 @@ class EmitVBaseVisitorConst VL_NOT_FINAL : public EmitCBaseVisitorConst { iterateAndNextConstNull(nodep->fromp()); puts(cvtToStr(nodep->declRange())); } + void visit(AstThisRef* nodep) override { puts("this"); } void visit(AstTypedef* nodep) override { putfs(nodep, "typedef "); iterateConstNull(nodep->subDTypep()); diff --git a/test_regress/t/t_debug_emitv.out b/test_regress/t/t_debug_emitv.out index fc093919b..07624a32f 100644 --- a/test_regress/t/t_debug_emitv.out +++ b/test_regress/t/t_debug_emitv.out @@ -331,6 +331,9 @@ package Vt_debug_emitv___024unit; int signed member; member = 'sh1; task method; + if ((this != this)) begin + $stop; + end endtask function new; endfunction diff --git a/test_regress/t/t_debug_emitv.v b/test_regress/t/t_debug_emitv.v index c886cb300..025089c07 100644 --- a/test_regress/t/t_debug_emitv.v +++ b/test_regress/t/t_debug_emitv.v @@ -22,6 +22,7 @@ endpackage class Cls; int member = 1; function void method; + if (this != this) $stop; endfunction endclass