From 4f1398f7734eb75f97387c4a72983615ca7117cc Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Mon, 16 May 2016 22:04:21 -0400 Subject: [PATCH] Add commandArgsAdd, msg1890. --- include/verilated.h | 1 + include/verilated_imp.h | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/verilated.h b/include/verilated.h index 804d07b1c..1ddb07ca3 100644 --- a/include/verilated.h +++ b/include/verilated.h @@ -288,6 +288,7 @@ public: /// Record command line arguments, for retrieval by $test$plusargs/$value$plusargs static void commandArgs(int argc, const char** argv); static void commandArgs(int argc, char** argv) { commandArgs(argc,(const char**)argv); } + static void commandArgsAdd(int argc, const char** argv); static CommandArgValues* getCommandArgs() {return &s_args;} /// Match plusargs with a given prefix. Returns static char* valid only for a single call static const char* commandArgsPlusMatch(const char* prefixp); diff --git a/include/verilated_imp.h b/include/verilated_imp.h index ecfb76d84..e54cf4654 100644 --- a/include/verilated_imp.h +++ b/include/verilated_imp.h @@ -92,7 +92,11 @@ public: // But only for verilated*.cpp // METHODS - arguments static void commandArgs(int argc, const char** argv) { - s_s.m_argVec.clear(); + s_s.m_argVec.clear(); // Always clear + commandArgsAdd(argc, argv); + } + static void commandArgsAdd(int argc, const char** argv) { + if (!s_s.m_argVecLoaded) s_s.m_argVec.clear(); for (int i=0; i