From 34f63396cb2b7a0c1f5163c9b02c5148a21b64a4 Mon Sep 17 00:00:00 2001 From: Todd Strader Date: Mon, 10 Nov 2025 16:44:41 -0500 Subject: [PATCH] Fix `free` collision (#6675) --- src/V3EmitCImp.cpp | 2 +- test_regress/t/t_var_rsvd_port.v | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/V3EmitCImp.cpp b/src/V3EmitCImp.cpp index 55cc93ad0..c6b213240 100644 --- a/src/V3EmitCImp.cpp +++ b/src/V3EmitCImp.cpp @@ -253,7 +253,7 @@ class EmitCImp final : public EmitCFunc { } else { putns(modp, "void " + modName + "::dtor() {\n"); } - putns(modp, "VL_DO_DANGLING(free(const_cast(vlNamep)), vlNamep);\n"); + putns(modp, "VL_DO_DANGLING(std::free(const_cast(vlNamep)), vlNamep);\n"); emitSystemCSection(modp, VSystemCSectionType::DTOR); puts("}\n"); } diff --git a/test_regress/t/t_var_rsvd_port.v b/test_regress/t/t_var_rsvd_port.v index 5d00596fe..a9d81abe0 100644 --- a/test_regress/t/t_var_rsvd_port.v +++ b/test_regress/t/t_var_rsvd_port.v @@ -13,6 +13,7 @@ module t (/*AUTOARG*/ reg vector; // OK, as not public reg switch /*verilator public*/; // Bad + reg free /*verilator public*/; // OK, not actually a keyword initial begin $write("*-* All Finished *-*\n");