diff --git a/include/verilated.h b/include/verilated.h index aa1a582be..804d7363a 100644 --- a/include/verilated.h +++ b/include/verilated.h @@ -542,6 +542,7 @@ public: // But for internal use only // Internal: Check magic number static void checkMagic(const VerilatedContext* contextp); + void selfTestClearMagic() { m_magic = 0x2; } }; //=========================================================================== diff --git a/test_regress/t/t_wrapper_del_context_bad.cpp b/test_regress/t/t_wrapper_del_context_bad.cpp index e6e33decd..28f80eee4 100644 --- a/test_regress/t/t_wrapper_del_context_bad.cpp +++ b/test_regress/t/t_wrapper_del_context_bad.cpp @@ -13,7 +13,9 @@ int main(int argc, char** argv, char** env) { // Create contexts VerilatedContext* contextp{new VerilatedContext}; - delete contextp; // Test mistake - deleting contextp + // Ideally we'd do this, but then address sanitizer blows up + // delete contextp; // Test mistake - deleting contextp + contextp->selfTestClearMagic(); // instantiate verilated design std::unique_ptr topp{new VM_PREFIX{contextp, "TOP"}};